我有一个项目需要解决的非常重要的问题!
所以我有2个看起来像这样的数据框: 第一个数据框是:
Date Winner Loser Tournament
2007-01-01 Luczak P. Hrbaty D. Grandslam
2007-01-02 Serra F. Johansson J. Grandslam
2007-01-02 ...... ......
第二个数据框是:
Date Winner Loser Tournament
2007-05-28 Federer R. Russel M. Grandslam
2007-05-28 Ascione T. Cilic M. Grandslam
2007-05-28 ...... ......
即使第一个数据帧始于2007年1月1日,另一个数据帧始于2007年5月28日,两个数据帧具有相同的行数,这些行对应于来自同一时期的相同匹配项。我通过查看导入的excel文件进行了检查,以构建两个数据框(来自不同来源)。
问题是,一个数据框(第一个)为我提供了每场比赛的确切日期,而另一个数据框(第二个)为我将每一行的日期设置为比赛的开始时间,而不是确切的时间。因此我无法根据日期值合并两个数据框。
但是,我确定每一行的获胜者和失败者都是相同的,所以我想根据获胜者和参与者相同的行合并两个数据框。
有人知道我该怎么做吗?预先感谢!
答案 0 :(得分:1)
您可以通过merge_asof
来做到这一点:
df = pd.merge_asof(df1.sort_values('Date'),
df2.sort_values('Date'), on='Date', by=['Winner','Loser'])
答案 1 :(得分:0)
df= pd.merge(df1,df2,how='inner',left_on=['Winner','Loser'],right_on=['Winner','Loser'])