Pandy funkcia ekvivalent hlookup v programe excel

0

Otázka

Tam je to df "creditor_life_rates_tranpose"čo je vyhľadávacia tabuľka:

enter image description here

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

ale ja, ako túto chybu: enter image description here

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)
dataframe function pandas python
2021-11-24 04:36:22
1

Najlepšiu odpoveď

0

Táto funkcia pd.merge_asof vykonáva operácie, ktoré som hľadala a je ekvivalentná funkcia HLOOKUP v programe Excel.

application_data2 = pd.merge_asof(application_data.sort_values(by=['term_years_lookup'],ascending=True)
,creditor_life_rates_tranpose.sort_values(by=['term_years_lookup'],ascending=True), 
on='term_years_lookup',by ='age_lookup')
2021-11-24 13:41:42

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................