[英]Merge 2 data frames based on matching rows of 2 columns with Pandas
我有一个非常重要的问题需要为一个项目解决!
所以我有 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-01-01 开始,另一个从 2007-05-28 开始,这两个数据帧的行数相同,对应于同一时期的相同匹配项。 我通过查看我为构建两个数据框(来自不同来源)而导入的 excel 文件进行了检查。
问题是一个 Dataframe(第一个)为我提供了每场比赛的确切日期,而另一个 Dataframe(第二个)将每一行的日期设置为比赛的开始时间,而不是比赛的确切日期。 所以我无法根据日期值合并两个数据框。
但是,我肯定知道每一行的获胜者和失败者是相同的,所以我想根据获胜者和玩家相同的行合并两个数据帧。
有谁知道我怎么能做到这一点? 提前致谢!
你可以通过merge_asof
来做到:
df = pd.merge_asof(df1.sort_values('Date'),
df2.sort_values('Date'), on='Date', by=['Winner','Loser'])
df= pd.merge(df1,df2,how='inner',left_on=['Winner','Loser'],right_on=['Winner','Loser'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.