Pandy funkci odpovídá funkce vvyhledat v aplikaci excel

0

Otázka

Tam je to df "creditor_life_rates_tranpose"což je vyhledávací tabulka:

enter image description here

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

ale já jsem stále tuto chybu: enter image description here

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

Nejlepší odpověď

0

Tato funkce pd.merge_asof provádí operace jsem hledal a je ekvivalentní funkce VVYHLEDAT funkce v aplikaci 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 jiných jazycích

Tato stránka je v jiných jazycích

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