Não é este df "creditor_life_rates_tranpose
"o que é uma tabela de pesquisa:
Eu estou tentando consultar o valor com base em chaves "age
"e "term_years
"e de armazenamento de volta para a minha base de dados do quadro "aplicação".
Para os dados de teste, a base dataframe "application
"contém colunas "age
", "term_years
"com valores 49 e 3.8, respectivamente.
Base dataframe aplicativo está abaixo:
age, terms_years
49, 3.8
Vemos que, de 49 anos, está localizado na tabela de pesquisa, mas desde 3.8 não está localizado na term_years
coluna da tabela de pesquisa que eu preciso olhar para cima, utilizando o maior valor que é menor do que a 3.8. Neste caso, seria 3.5. Daí o valor que deve ser retornado é 21.40.
Eu tinha tentado a escrever esta função usando a cauda(1) para retornar apenas o último valor com base no age
e terms_years
a partir da tabela de pesquisa
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
Então eu gostaria de chamar a função como esta:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Eu estava esperando para começar esta como resultante Dataframe:
age, terms_years, results
49, 3.8, 21.40
mas estou recebendo este erro:
A propósito, o código funciona se eu passar os valores como este, mas não o real colunas da aplicação dataframe. Mas eu preciso realmente para passar as colunas.
application['result'] = hlookup_function(49,3.8)