No es este el df "creditor_life_rates_tranpose
"que es una tabla de búsqueda:
Estoy tratando de buscar el valor en función de teclas "age
"y "term_years
"y la tienda de nuevo a mi base de datos de marco de "aplicación".
Para los datos de prueba, la base de dataframe "application
"contiene las columnas "age
", "term_years
"con los valores de 49 y 3.8 respectivamente.
Base dataframe de la aplicación es el siguiente:
age, terms_years
49, 3.8
Vemos que la edad de 49 se encuentra en la tabla de búsqueda pero ya 3.8 no se encuentra en el term_years
columna de la tabla de búsqueda que lo necesito para buscar utilizando el mayor valor que es inferior a 3.8. En este caso sería de 3.5. De ahí el valor que se debe devolver es 21.40.
Yo había tratado de escribir esta función a través de la cola(1) para devolver sólo el último valor basado en la age
y terms_years
a partir de la tabla de búsqueda
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
A continuación, me gustaría llamar a la función como esta:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Yo estaba esperando a conseguir este como el resultado Dataframe:
age, terms_years, results
49, 3.8, 21.40
pero estoy recibiendo este error:
Por cierto, el código funciona, si me pasan los valores como este, pero no las columnas de la aplicación dataframe. Pero tengo que pasar a las columnas.
application['result'] = hlookup_function(49,3.8)