2017-02-22 6 views
3

Ich habe zwei Datenrahmen nämlich high_scores1 und high_scores2 wie folgt aus:Wie füge ich zwei Datenrahmen mit einer gemeinsamen Spalte zusammen?

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 

Jetzt muss ich diese beiden verschmelzen mit der Säule match_id, so dass die neue Datenrahmen sieht ungefähr so ​​aus:

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 

Ich habe versucht, der folgende Code:

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

Aber es hat nicht funktioniert. Wie füge ich die Datenrahmen zusammen?

Antwort

2

fusionieren einfach auf eine Teilmenge der zweiten Datenrahmen Spalten mit

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

Demo

>>> 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

es worked..thnx – user517696

2

Sie benötigen

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