2016-10-01 3 views
2

ich zwei Datenrahmen haben:Concat zwei Pandas Datenrahmen ohne anfängliche Spalten Sortierung

Datenrahmen A

index ID_1 ID_2 Value 
0  1  1  1.0 
1  1  2  1.2 
2  1  3  1.3 

Datenrahmen B

index ID_1 ID_2 Value 
0  1  2  1.0 
1  1  1  1.2 
2  1  3  1.3 

Und jeder von ID_1 sortiert, dann nach Wert .

Ich möchte die beiden Datenrahmen zusammenführen oder verketten, damit ich leicht bestimmen kann, wo ID_2 in Datenrahmen A und Datenrahmen B nicht gleich sind - also bestimmen, wenn die Sortierung eine Differenz in der Reihenfolge der ID_2-Spalte hervorhebt.

Ich habe pd.concat verschiedene Möglichkeiten zu nutzen versucht, und ich dieses Ergebnis immer erhalten:

index ID_1 ID_2 Value ID_1 ID_2 Value 
0  1  1  1.0  1  1  1.2 
1  1  2  1.2  1  2  1.0 
2  1  3  1.3  1  3  1.3 

Eher als das, was ich will: Irgendwelche Ideen

index ID_1 ID_2 Value ID_1 ID_2 Value 
0  1  1  1.0  1  2  1.0 
1  1  2  1.2  1  1  1.2 
2  1  3  1.3  1  3  1.3 

? Ich habe es mit verschiedenen Spaltennamen versucht, usw.

Edit:

Die Lösung unterhalb natürlich Arbeiten vorgeschlagen, aber man darf nicht vergessen reset_index(drop=True) auf dem Datenrahmen zu tun, um die Indizes nach der Sortierung zurücksetzen.

Antwort

2

das funktioniert für mich
'index' vorausgesetzt, ist der Index für beide A und B

pd.concat([A, B], axis=1) 

enter image description here

+0

Ich denke, es ist, dass ich die Art ich die Dinge neu indexiert habe ich davon aus, und es wahrscheinlich didn t. – traggatmot

+1

@traggmatmot hat es sicherlich nicht. Verwenden Sie 'reset_index (drop = True)', um dies zu erreichen. – piRSquared

Verwandte Themen