- Do łączenia dwóch tabel danych służy metoda
merge()
z pandas
- Domyślnie wykonuje
inner join
- Możliwe typy złączeń
how
: 'left'
, 'right'
, 'outer'
, 'inner'
- Można łączyć po indeksach lub kolumnach
- Możliwe jest także łączenie po wielu kolumnach
- Warto korzystać z
reset_index()
lub set_index()
dla większej kontroli
# INDEX merge
pd.merge(df1, df2, left_index=True, right_index=True)
# COLUMN merge
pd.merge(df1, df2, on='sex smoker'.split())
# COLUMN merge (using index columns)
pd.merge(df1.reset_index(), df2.reset_index(), on='sex smoker'.split())
# METHODS
pd.merge(df1, df2, on='sex smoker'.split(), how='outer')
Parametry wspomagające
validate=
— sprawdza spójność typów złączeń (np. 1:1
, 1:m
)
indicator=True
— tworzy kolumnę pokazującą pochodzenie wiersza (both
, left_only
, right_only
)
# walidacja relacji: one-to-one
pd.merge(df1.reset_index(), df2.reset_index(), on='sex smoker'.split(), validate='1:1')
# z kolumną pochodzenia
pd.merge(df1, df2, on='sex smoker'.split(), how='outer', indicator=True)