Bu df var "creditor_life_rates_tranpose
"bu bir arama tablosu:
Anahtarlara dayalı değeri aramaya çalışıyorum "age
" ve "term_years
"ve temel veri çerçeveme geri sakla "uygulama".
Test verileri için temel veri çerçevesi "application
"sütunları içerir "age
", "term_years
"49 ve 3.8 değerleriyle saygıyla.
Temel dataframe uygulaması aşağıdadır:
age, terms_years
49, 3.8
49 Yaşının arama tablosunda bulunduğunu, ancak 3.8'in arama tablosunda bulunmadığını görüyoruz. term_years
arama tablosunun sütunu 3.8'den düşük olan en yüksek değeri kullanarak aramam gerekiyor. Bu durumda 3.5 olur. Bu nedenle, döndürülmesi gereken değer 21.40'tır.
Bu işlevi, yalnızca son değeri temel alarak döndürmek için tail(1) kullanarak yazmaya çalıştım. age
ve terms_years
arama tablosundan
def hlookup_function(age, terms_year):
result= creditor_life_rates_tranpose[(creditor_life_rates_tranpose['age']== age) & (creditor_life_rates_tranpose['term_years'] <= terms_year)]['value'].tail(1).values[0]
return result
O zaman bu işlevi şöyle çağırırdım:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Bunu elde edilen Veri Çerçevesi olarak almayı bekliyordum:
age, terms_years, results
49, 3.8, 21.40
Bu arada, uygulama veri çerçevesinin gerçek sütunlarını değil, bu gibi değerleri iletirsem kod çalışır. Ama aslında sütunları geçmem gerekiyor.
application['result'] = hlookup_function(49,3.8)