Tam je to df "creditor_life_rates_tranpose
"což je vyhledávací tabulka:
Snažím se podívat na hodnoty založené na klíče "age
"a "term_years
"a uložte zpět na základnu data frame "aplikace".
Pro testovací data, základní datovém "application
"obsahuje sloupce "age
", "term_years
"s hodnotami 49 a 3.8.se vší úctou.
Základní datovém aplikace je níže:
age, terms_years
49, 3.8
Vidíme, že věk 49 se nachází ve vyhledávací tabulce, ale od 3.8 není umístěn v term_years
sloupci vyhledávací tabulky potřebuju, aby to vypadalo, pomocí nejvyšší hodnotu, která je nižší než 3,8. V tomto případě by bylo 3.5. Tedy hodnotu, která by měla být vrácena, je 21.40.
Snažil jsem se napsat tuto funkci pomocí tail(1) vrátit pouze poslední hodnotu na základě age
a terms_years
z vyhledávací tabulky
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
Pak bych zavolat funkci takto:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Čekal jsem, že si to jako výsledný Datovém:
age, terms_years, results
49, 3.8, 21.40
Mimochodem, kód funguje, pokud jsem předat hodnoty, jako je tento, ale ne skutečné sloupce aplikace datovém. Ale potřebuju, aby skutečně projít sloupce.
application['result'] = hlookup_function(49,3.8)