Ho il seguente problema: Ho due frame di dati di panda di diversa lunghezza contenenti alcune righe e colonne che hanno valori comuni e alcuni che sono diversi, in questo modo:Unisci due frame di dati di panda Python di lunghezza diversa ma conserva tutte le righe nel frame di dati di output
df1: df2:
Column1 Column2 Column3 ColumnA ColumnB ColumnC
0 a x x 0 c y y
1 c x x 1 e z z
2 e x x 2 a s s
3 d x x 3 d f f
4 h x x
5 k x x
quello che voglio fare ora è fusione dei due dataframes modo che se ColumnA e Column1 hanno lo stesso valore le righe df2 vengono aggiunti alla riga corrispondente df1, in questo modo:
df1:
Column1 Column2 Column3 ColumnB ColumnC
0 a x x s s
1 c x x y y
2 e x x z z
3 d x x f f
4 h x x NaN NaN
5 k x x NaN NaN
So che l'unione è fattibile ugh df1.merge(df2,left_on='Column1', right_on='ColumnA')
, ma questo comando elimina tutte le righe che non sono le stesse in Column1 e ColumnA in entrambi i file. Invece di ciò voglio mantenere queste righe in df1 e assegnare loro semplicemente NaN nelle colonne in cui altre righe hanno un valore da df2, come mostrato sopra. C'è un modo semplice per farlo in panda?
Grazie in anticipo!
Penso che in realtà sta cercando 'left' join :) – Mathiou
hai ragione. Modificherò la risposta. – Sina
Leggerò la documentazione, grazie per la risposta veloce! funziona bene. –