
W pracy z danymi w Pythonie biblioteka pandas jest nieocenionym narzędziem. Jedną z jej przydatnych funkcji jest join()
, pozwalająca na łączenie tabel na podstawie indeksów. W tym artykule omówię, jak działa pandas.join()
w języku Python, a także pokażę przykład jego zastosowania.
Co to jest pandas join?
Funkcja join()
w bibliotece pandas służy do łączenia dwóch DataFrame’ów na podstawie indeksu. Jest wygodną alternatywą dla funkcji merge()
, szczególnie wtedy, gdy pracujemy z indeksami, a nie z kolumnami kluczowymi.
Podstawowa składnia funkcji wygląda tak:
DataFrame1.join(DataFrame2, on=None, how='left', lsuffix='', rsuffix='', sort=False)
Główne argumenty funkcji to:
DataFrame2
– drugi DataFrame, który chcemy dołączyć.on
– opcjonalna nazwa kolumny wDataFrame1
, na podstawie której nastąpi połączenie.how
– sposób łączenia, domyślnie'left'
. Możliwe wartości to:'left'
– zostają wszystkie indeksyDataFrame1
, brakujące wartości wDataFrame2
uzupełniane sąNaN
,'right'
– zostają wyłącznie indeksyDataFrame2
,'outer'
– zostają wszystkie indeksy z obu zbiorów,'inner'
– pozostają tylko wspólne indeksy.
lsuffix
,rsuffix
– dodawane do nazw kolumn, jeśli nazwy kolumn w obu DataFrame’ach się powtarzają.sort
– czy posortować wynik po indeksach.
Przykład zastosowania pandas join
Żeby lepiej zrozumieć, jak działa pandas.join()
w języku Python, spójrzmy na przykład. Załóżmy, że mamy dwa DataFrame’y z danymi o pracownikach.
import pandas as pd
# Tworzymy pierwszy DataFrame
df1 = pd.DataFrame({
'Imię': ['Anna', 'Jan', 'Katarzyna'],
'Wiek': [30, 25, 35]
}, index=['ID1', 'ID2', 'ID3'])
# Tworzymy drugi DataFrame
df2 = pd.DataFrame({
'Stanowisko': ['Manager', 'Programista', 'Analityk'],
'Pensja': [7000, 5000, 6000]
}, index=['ID1', 'ID2', 'ID3'])
# Dołączamy df2 do df1
df_result = df1.join(df2)
print(df_result)
Wynik działania kodu:
Index | Imię | Wiek | Stanowisko | Pensja |
---|---|---|---|---|
ID1 | Anna | 30 | Manager | 7000 |
ID2 | Jan | 25 | Programista | 5000 |
ID3 | Katarzyna | 35 | Analityk | 6000 |
Rodzaje łączenia danych
Funkcja join()
pozwala na różne sposoby łączenia danych. Oto ich porównanie:
df_outer = df1.join(df2, how='outer')
df_inner = df1.join(df2, how='inner')
df_right = df1.join(df2, how='right')
Porównanie metod:
Metoda | Opis |
---|---|
left | Łączy na podstawie indeksów z df1 , dodając brakujące wartości jako NaN . |
right | Łączy na podstawie indeksów z df2 , dodając brakujące wartości jako NaN . |
inner | Pozostawia tylko wspólne indeksy. |
outer | Łączy wszystkie dane zachowując indeksy obu DataFrame’ów. |
Różnica między join() a merge()
W pandas mamy również funkcję merge()
. Główna różnica między join()
a merge()
polega na tym, że:
join()
działa na indeksach i przyjmuje tylko jeden DataFrame jako argument.merge()
pozwala na łączenie danych na podstawie kolumn, co daje większą kontrolę i elastyczność.
Przykład z merge()
:
df_merge = df1.merge(df2, left_index=True, right_index=True, how='left')
Podsumowanie
Funkcja pandas.join()
w języku Python jest bardzo przydatnym narzędziem do łączenia danych na podstawie indeksów. Stosując różne rodzaje łączenia, możemy kontrolować sposób integracji tabel. W porównaniu do merge()
jest bardziej intuicyjna, gdy chcemy pracować bezpośrednio na indeksach.
Warto eksperymentować z różnymi opcjami tej funkcji, aby dostosować metodę łączenia do konkretnego przypadku użycia. Mam nadzieję, że ten artykuł przybliżył temat i pomoże w kolejnych projektach z użyciem pandas.
„` Inny ciekawy artykuł: Jak działa pandas merge w języku Python? Przykład zastosowaniaOpanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.