Есть такой дф "creditor_life_rates_tranpose
"которая является таблицей поиска:
Я пытаюсь найти значение, основанное на ключах "age
"и "term_years
"и сохраните обратно в мой базовый фрейм данных "приложение".
Для тестовых данных используется базовый фрейм данных "application
"содержит столбцы "age
", "term_years
"со значениями 49 и 3,8 с уважением.
Приложение базового фрейма данных приведено ниже:
age, terms_years
49, 3.8
Мы видим, что возраст 49 лет находится в таблице поиска, но так как 3.8 не находится в term_years
столбец таблицы поиска Мне нужно, чтобы он смотрел вверх, используя наибольшее значение, которое меньше 3,8. В этом случае это было бы 3,5. Следовательно, значение, которое должно быть возвращено, равно 21,40.
Я пытался написать эту функцию с помощью tail(1), чтобы вернуть только последнее значение, основанное на age
и terms_years
из таблицы поиска
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
Затем я бы вызвал функцию следующим образом:
application['result'] = hlookup_function(application.age,(application_data.term_years).round(2))
Я ожидал получить это в виде результирующего фрейма данных:
age, terms_years, results
49, 3.8, 21.40
Кстати, код работает, если я передаю такие значения, но не фактические столбцы фрейма данных приложения. Но мне нужно на самом деле пройти колонны.
application['result'] = hlookup_function(49,3.8)