Il y a cette df "creditor_life_rates_tranpose
"ce qui est une table de recherche:
Je suis en train de regarder la valeur en se basant sur les touches "age
"et "term_years
"et de stocker de retour à ma base de données d'image "application".
Pour les données de test, la base dataframe "application
"contient des colonnes "age
", "term_years
"avec les valeurs de 49 et 3,8 respectueusement.
La Base de dataframe application est ci-dessous:
age, terms_years
49, 3.8
Nous voyons que l'âge de 49 ans se trouve dans la table de recherche, mais depuis 3.8 est pas situé dans le term_years
colonne de la table de recherche j'en ai besoin pour rechercher à l'aide de la valeur la plus élevée qui est inférieur de 3,8. Dans ce cas, il serait de 3,5. D'où la valeur qui doit être retournée est de 21,40.
J'avais essayé d'écrire cette fonction à l'aide de la queue(1) pour retourner uniquement la dernière valeur calculée sur la base age
et terms_years
à partir de la table de recherche
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
Ensuite, je voudrais appeler la fonction comme ceci:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Je m'attendais à obtenir ce que le Dataframe:
age, terms_years, results
49, 3.8, 21.40
Par ailleurs, le code fonctionne si je passe les valeurs de ce type, mais pas les colonnes réelles de l'application dataframe. Mais j'ai besoin de passer à l'colonnes.
application['result'] = hlookup_function(49,3.8)