[英]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.