2017-03-08 3 views
0

Wenn df1 wie folgt aussieht:In Pandas Datenrahmen, wie zwei Datenrahmen fusionieren/join, die alle Reihe von links Tabelle und wiederholen Werte von rechts Datenrahmen hat

Build_ID, Request_ID, Group_ID, Average 
185, 100, G1, 200 
186, 100, G1, 201 
185, 102, G1, 203 
186, 102, G1, 205 
185, 200, G3, 200 
186, 200, G3, 201 
185, 202, G3, 203 
186, 202, G3, 205 

und DF2 wie folgt aussieht:

Build_ID, Group_ID, Group_Average 
185, G1, 300 
186, G1, 301 
185, G3, 401 
186, G3, 402 

und das Endergebnis sollte wie folgt aussehen:

Build_ID, Request_ID, Group_ID, Average, Group_Average 
    185, 100, G1, 200, 300 
    186, 100, G1, 201, 301 
    185, 102, G1, 203, 300 
    186, 102, G1, 205, 301 
    185, 200, G3, 200, 401 
    186, 200, G3, 201, 402 
    185, 202, G3, 203, 401 
    186, 202, G3, 205, 402 

Im Grunde werden alle Zeilen von df1 und Group_Average von df2 wiederholt für jede Group_ID und Build_ID. Ich versuchte Merge und Join mit verschiedenen Joint, aber kann nicht das Ergebnis, das ich suche. Danke

Antwort

0

Ist es das was du willst?

In [60]: df1.merge(df2, on=['Build_ID','Group_ID']) 
Out[60]: 
    Build_ID Request_ID Group_ID Average Group_Average 
0  185   100  G1  200   300 
1  185   102  G1  203   300 
2  186   100  G1  201   301 
3  186   102  G1  205   301 
4  185   200  G3  200   401 
5  185   202  G3  203   401 
6  186   200  G3  201   402 
7  186   202  G3  205   402 
+0

Dank - das ist genau das, was ich für aber bin auf der Suche, wenn ich es betreiben ich nur Spaltennamen (leerer Datenrahmen) – user3578994

+0

Die Frage, die ich war mit Typ-mis-match hatte bekommen (http://stackoverflow.com/ Fragen/25792086/panda-merge-return-empty-dataframe) es funktioniert jetzt. Vielen Dank – user3578994

Verwandte Themen