2017-02-22 33 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') 
相关问题