Mam następujący problem: Mam dwie ramki danych o różnych długościach, zawierające niektóre wiersze i kolumny, które mają wspólne wartości, a inne są różne, tak:Scal dwie ramki danych Panda Panda o różnej długości, ale zachowaj wszystkie wiersze w ramce danych wyjściowych
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
Co chcę zrobić teraz jest łączenie dwóch dataframes tak, że jeśli Columna i Kolumna1 mają taką samą wartość wiersze z DF2 są dołączane do odpowiedniego wiersza w DF1 coś takiego:
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
Wiem, że połączenie jest wykonalne ugh df1.merge(df2,left_on='Column1', right_on='ColumnA')
, ale to polecenie usuwa wszystkie wiersze, które nie są takie same w Kolumnie 1 i Kolumnie A w obu plikach. Zamiast tego chcę zachować te wiersze w df1 i po prostu przypisać NaN do nich w kolumnach, gdzie inne wiersze mają wartość od df2, jak pokazano powyżej. Czy jest to płynny sposób na pandy?
Z góry dziękuję!
Myślę, że on faktycznie szuka "lewej" dołączyć :) – Mathiou
masz rację. Będę edytować odpowiedź. – Sina
Przeczytam dokumentację, dziękuję za szybką odpowiedź! działa w porządku. –