Tam je to df "creditor_life_rates_tranpose
"čo je vyhľadávacia tabuľka:
Snažím sa pozrieť do hodnoty na základe kľúča "age
"a "term_years
"a uložiť späť do môjho údaje o základni na rám "žiadosť".
Pre testovacie dáta, základňa dataframe "application
"obsahuje stĺpce "age
", "term_years
"s hodnotami 49 a 3,8 úctivo.
Základná dataframe aplikácia je to uvedené nižšie:
age, terms_years
49, 3.8
Vidíme, že vek 49 sa nachádza v vyhľadávacie tabuľky, ale od 3.8 nie je umiestnený v term_years
stĺpec vyhľadávacia tabuľka potrebujem ho vyhľadať pomocou najvyššiu hodnotu, ktorá je nižšia ako 3.8. V tomto prípade by to byť 3.5. Teda hodnoty, ktoré by mali byť vrátené, je 21.40.
Musel som sa pokúsil napísať túto funkciu pomocou chvosta(1) ak sa chcete vrátiť iba posledné hodnoty na základe age
a terms_years
z vyhľadávacia tabuľka
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
Potom by som sa volať funkciu, ako je táto:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Očakával som, aby si to ako výsledný Dataframe:
age, terms_years, results
49, 3.8, 21.40
Mimochodom, kód funguje, ak som prejsť hodnoty, ako je tento, ale nie skutočný stĺpce žiadosti dataframe. Ale musím skutočne prejsť stĺpce.
application['result'] = hlookup_function(49,3.8)