
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 wDataFrame2uzupeł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 zastosowania
Opanuj 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, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

