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

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

Pracując z biblioteką pandas w języku Python, często zachodzi potrzeba łączenia różnych zbiorów danych. Jednym z najbardziej elastycznych narzędzi do tego celu jest funkcja pandas.concat(). W tym artykule omówię szczegółowo, jak działa pandas concat w języku Python oraz przedstawię praktyczne przykłady zastosowania.

Co to jest pandas.concat()?

Pandas concat() to funkcja, która pozwala na łączenie obiektów DataFrame i Series wzdłuż wybranej osi: poziomej (axis=1) lub pionowej (axis=0). Dzięki niej możemy łatwo zestawiać dane z różnych źródeł, dokonywać agregacji czy tworzyć nowe struktury danych.

Podstawowa składnia pandas.concat()

Składnia tej funkcji wygląda następująco:

pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, names=None, verify_integrity=False, sort=False, copy=True)

Najważniejsze parametry funkcji:

  • objs – lista obiektów do połączenia, np. [df1, df2].
  • axis – określa, czy łączymy dane wierszami (0 – domyślnie) czy kolumnami (1).
  • join – sposób łączenia danych: 'outer' (domyślne – łączy wszystkie dane) lub 'inner' (łączy tylko wspólne elementy).
  • ignore_index – jeśli ustawione na True, indeksy zostaną zresetowane.

Przykład zastosowania pandas.concat()

Zacznijmy od prostego przykładu – połączymy dwa obiekty DataFrame w pionie:

import pandas as pd

# Tworzymy dwa przykładowe DataFrame
df1 = pd.DataFrame({
    'ID': [1, 2, 3],
    'Imię': ['Anna', 'Bogdan', 'Cezary']
})

df2 = pd.DataFrame({
    'ID': [4, 5, 6],
    'Imię': ['Dorota', 'Edward', 'Filip']
})

# Łączenie wierszami (axis=0)
df_concat = pd.concat([df1, df2])

print(df_concat)

Wynik powyższego kodu:

ID Imię
1 Anna
2 Bogdan
3 Cezary
4 Dorota
5 Edward
6 Filip

Łączenie danych z resetowaniem indeksu

Domyślnie indeksy w nowym DataFrame zachowają swoje pierwotne wartości. Możemy jednak je zresetować:

df_concat_reset = pd.concat([df1, df2], ignore_index=True)
print(df_concat_reset)

Teraz indeksy zostaną przypisane na nowo, poczynając od 0.

Łączenie danych w poziomie

Jeśli chcemy połączyć dane w poziomie (czyli kolumnami), ustawiamy axis=1:

df_horizontal = pd.concat([df1, df2], axis=1)
print(df_horizontal)

Takie rozwiązanie może się przydać, gdy np. chcemy dodać nowe cechy do istniejących danych.

Łączenie z różnymi kolumnami

Jeśli dwa DataFrame mają różne kolumny, tworzone są wartości NaN dla brakujących danych:

df3 = pd.DataFrame({
    'ID': [7, 8],
    'Nazwisko': ['Nowak', 'Kowalski']
})

df_concat_mixed = pd.concat([df1, df3], sort=False)
print(df_concat_mixed)

W tej sytuacji wiersze df1 będą miały wartości NaN w kolumnie „Nazwisko”, a wiersze df3 – w kolumnie „Imię”.

Łączenie z kluczami (keys)

Czasem warto pogrupować dane przy łączeniu. Możemy użyć parametru keys:

df_concat_keys = pd.concat([df1, df2], keys=['grupa1', 'grupa2'])
print(df_concat_keys)

Dzięki temu dostaniemy dodatkowy poziom indeksowania, co może być przydatne przy analizie danych.

Podsumowanie

Funkcja pandas.concat() to potężne narzędzie do łączenia danych w języku Python. Pozwala na:

  • Łączenie wierszami i kolumnami.
  • Resetowanie indeksów.
  • Gospodarowanie brakującymi danymi.
  • Dodawanie kluczy dla lepszej organizacji danych.

To jedno z najbardziej przydatnych narzędzi w pracy z danymi, które zdecydowanie warto znać!

„` Inny ciekawy artykuł: Jak działa pandas series w języku Python? Przykład zastosowania
KajoDataSpace