verbinden Sie zwei pandas dataframe mit einer bestimmten Spalte
Ich bin neu mit pandas und ich bin versucht, an zwei dataframes auf der Grundlage der Gleichheit von einer bestimmten Spalte. Zum Beispiel nehmen wir an, dass ich die folgenden:
df1
A B C
1 2 3
2 2 2
df2
A B C
5 6 7
2 8 9
Beide dataframes haben die gleichen Spalten und den Wert von nur einer Spalte (sagen) könnte gleich sein. Was will ich als Ausgabe ist dieser:
df3
A B C B C
2 8 9 2 2
Die Werte für die Spalte " A " sind einzigartig in beiden dataframes.
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, pflegen Spalte
A
als ein nicht-index, dann:reset_index
um Sie in einer Spalte, wenn das ist, was gewollt ist..reset_index()
am Ende.pd.concat([df1.set_index('A'),df2.set_index('A')], axis=1, join='inner').reset_index()
Alternativ können Sie nur tun:
Und dann können Sie verfolgen, jeder Wert auf die Herkunft
"B"
. Wenn Sie doppelte Spaltennamen, bekommen Sie ein sehr unerwartetes Verhalten mit sagen,df3['B'].apply(lambda x: ...)
da jetztdf['B']
ist ein DataFrame und nicht eine Serie.