2017-02-22 35 views
3

我有兩個dataframes即high_scores1和high_scores2這樣的:如何通過使用公共列來合併兩個數據框?

match_id inn1 batting_team bowling_team runs1 
1    1 KKR     RCB   222 
2    1 CSK     KXIP  240 
3    1 RR     DD   129 
4    1 MI     RCB   165 


match_id inn2 batting_team bowling_team runs2 
    1   2  RCB    KKR   82 
    2   2  KXIP    CSK   207 
    3   2  DD    RR    132 
    4   2  RCB    MI    166 

現在我需要使用列match_id使得新的數據框看起來是這樣的,以合併這兩個:

match_id inn batting_team bowling_team runs1 inn2 runs2 
1   1 KKR     RCB   222  2  82 
2   1 CSK     KXIP  240  2  207 
3   1 RR     DD   129  2  132 
4   1 MI     RCB   165  2  166 

我試着下面的代碼:

high_scores1[['match_id','inn1','batting_team','bowling_team','runs1']].merge(high_scores2, left_on = 'match_id', right_on = 'match_id', how = 'left') 

但它沒有奏效。我如何合併數據框?

回答

2

第二數據幀的列的子集就合併與

high_scores1.merge(high_scores2[['match_id','inn2', 'runs2']], on='match_id') 

演示

>>> high_scores1.merge(high_scores2[['match_id','inn2', 'runs2']], on='match_id') 
    batting_team bowling_team inn1 match_id runs1 inn2 runs2 
0   KKR   RCB  1   1 222  2  82 
1   CSK   KXIP  1   2 240  2 207 
2   RR   DD  1   3 129  2 132 
3   MI   RCB  1   4 165  2 166 
+0

它worked..thnx – user517696

2

你需要

scores = high_scores1.merge(high_scores2[['match_id', 'inn2', 'runs2']], on = 'match_id') 
相關問題