【发布时间】:2022-01-02 12:44:12
【问题描述】:
有这个 df "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)
【问题讨论】:
-
请提供具有预期输出的示例数据框
-
@QuangHoang 谢谢!熊猫太强大了。这是我一直在寻找的功能。这正是我想要实现的目标。
标签: python pandas dataframe function series