Jak działa pandas join w języku Python? Przykład zastosowania

Jak działa pandas join w języku Python? Przykład zastosowania
„`html

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 w DataFrame1, na podstawie której nastąpi połączenie.
  • how – sposób łączenia, domyślnie 'left'. Możliwe wartości to:
    • 'left' – zostają wszystkie indeksy DataFrame1, brakujące wartości w DataFrame2 uzupełniane są NaN,
    • 'right' – zostają wyłącznie indeksy DataFrame2,
    • '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
KajoDataSpace