
Pracując z danymi w Pythonie, często muszę łączyć różne zestawy informacji, np. dane klientów z zamówieniami lub transakcje z informacjami o produktach. Do tego zadania idealnie nadaje się funkcja pandas.merge()
. Dzisiaj wytłumaczę, jak działa pandas.merge()
w języku Python i przedstawię praktyczny przykład zastosowania.
Czym jest pandas.merge()?
Funkcja pandas.merge()
w bibliotece Pandas umożliwia łączenie dwóch DataFrame’ów na podstawie wspólnych kolumn lub indeksów. Można ją porównać do operacji JOIN
w SQL, co czyni ją niezwykle użytecznym narzędziem podczas pracy z danymi tabelarycznymi.
Podstawowa składnia pandas.merge()
Funkcja pandas.merge()
przyjmuje kilka argumentów, ale podstawowe z nich to:
import pandas as pd
merged_df = pd.merge(left, right, how='inner', on='kolumna')
Główne parametry funkcji to:
left
– pierwszy DataFrame.right
– drugi DataFrame.how
– metoda łączenia, np.'inner'
,'left'
,'right'
,'outer'
.on
– nazwa kolumny lub listy kolumn, na podstawie których łączymy dane.
Rodzaje operacji merge
Funkcja pandas.merge()
obsługuje kilka typów operacji. Oto najważniejsze:
Typ operacji | Opis |
---|---|
inner |
Zwraca tylko pasujące rekordy z obu tabel (podobnie do INNER JOIN w SQL). |
left |
Zachowuje wszystkie rekordy z lewego DataFrame i pasujące z prawego. |
right |
Zachowuje wszystkie rekordy z prawego DataFrame i pasujące z lewego. |
outer |
Zachowuje wszystkie rekordy z obu DataFrame’ów (podobnie do FULL OUTER JOIN w SQL). |
Przykład zastosowania
Poniżej znajduje się praktyczny przykład użycia pandas.merge()
. Załóżmy, że mamy dwa zestawy danych: jeden z informacjami o klientach, a drugi z listą ich zamówień.
import pandas as pd
# Tworzenie pierwszego DataFrame – lista klientów
klienci = pd.DataFrame({
'klient_id': [1, 2, 3, 4],
'imie': ['Anna', 'Tomasz', 'Katarzyna', 'Marek']
})
# Tworzenie drugiego DataFrame – lista zamówień
zamowienia = pd.DataFrame({
'zamowienie_id': [101, 102, 103, 104],
'klient_id': [1, 2, 3, 5], # Zauważmy, że klient_id = 5 nie istnieje w "klienci"
'kwota': [250, 400, 150, 300]
})
# Łączenie danych na podstawie kolumny klient_id
df_polaczone = pd.merge(klienci, zamowienia, on='klient_id', how='inner')
print(df_polaczone)
Wynikiem tego połączenia będą tylko rekordy, które mają wspólną wartość w kolumnie klient_id
. Klient o klient_id = 5
nie został uwzględniony, ponieważ nie istniał w pierwszym DataFrame.
Kiedy warto używać pandas.merge()?
Metoda pandas.merge()
sprawdza się w wielu przypadkach, np. gdy:
- Potrzebuję połączyć dane z różnych źródeł (np. bazy danych, pliki CSV).
- Chcę wykonać operację analogiczną do
JOIN
w SQL. - Muszę porównać dwie tabele na podstawie klucza wspólnego.
Podsumowanie
Funkcja pandas.merge()
to potężne narzędzie do łączenia danych w Pythonie. Umożliwia wykonywanie różnych typów operacji (inner, left, right, outer), co daje dużą elastyczność w analizie danych. Mam nadzieję, że teraz już wiesz, jak działa pandas.merge()
w języku Python. Przykład zastosowania pokazał, jak można efektywnie łączyć różne zestawy danych i uzyskiwać potrzebne informacje.
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, 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.