加入2个熊猫数据框

时间:2020-09-21 01:33:15

标签: python pandas

我试图通过引用数据框2在数据框1中计算“ price_lastyear”。在数据框1中,对于XXX,年份为2017。 因此,2017年的最后一年是2016年。因此,它必须在数据框2中引用2016年的相同品牌,获取价格并在数据框1中的相应行中填充。

Dataframe 1:

car_model   year   price_lastyear   
XXX         2017   16411

Dataframe 2:

car_model   year   price
XXX         2016   16411
XXX         2017   11432
XXX         2018   12345  

尝试使用以下方法连接2个熊猫数据框:

df3 = df1.merge(df2, how=inner,  left_on=["car_model","year-1"], right_on=["car_model","year"]

不确定join是否是实现上述结果的最佳操作。

2 个答案:

答案 0 :(得分:2)

您可以修改年份并合并:

df1.merge(df2.assign(year=df2['year']+1), 
          on=['car_model','year'],
          how='left')

输出:

  car_model  year  price_lastyear  price
0       XXX  2017           16411  16411

答案 1 :(得分:1)

让我们检查merge_asof

out = pd.merge_asof(df1,df2.assign(Pyear=df2.year),on='year', by='car_model', allow_exact_matches=False)
  car_model  year  price_lastyear  price  Pyear
0       XXX  2017           16411  16411   2016