繁体   English   中英

加入 2 pandas 数据帧

[英]Join 2 pandas dataframes

我正在尝试通过引用 Dataframe 2 来计算 Dataframe 1 中的“price_lastyear”。在 dataframe 1 中,对于 XXX,年份是 2017 年。因此 2017 年的最后一年是 2016 年。因此它必须参考 2016 年在 8814021112,get the价格并填入dataframe 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 pandas 数据帧:

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

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

您可以修改年份并合并:

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

Output:

  car_model  year  price_lastyear  price
0       XXX  2017           16411  16411

让我们检查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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM