Jako analityk danych często stajesz przed koniecznością łączenia wielu zestawów danych. Musisz to zrobić, aby zakończyć analizę i wyciągnąć wnioski dla swojej firmy/interesariuszy.

Często trudno jest przedstawić dane przechowywane w różnych tabelach. W takich okolicznościach złączenia udowadniają swoją wartość, niezależnie od języka programowania, nad którym pracujesz.

Sprzężenia Pythona są podobne do złączeń SQL: łączą zestawy danych, dopasowując ich wiersze do wspólnego indeksu.

Utwórz dwie ramki danych w celach informacyjnych

Aby postępować zgodnie z przykładami w tym przewodniku, możesz utworzyć dwie przykładowe ramki DataFrames. Użyj poniższego kodu, aby utworzyć pierwszą ramkę DataFrame, która zawiera identyfikator, imię i nazwisko.

import pandy jak pd

a = pd. Ramka danych({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "Jan", "Helena", "Przędzarka", "Kenny"],
"Lnazwa": ["Keith", "Harley", "Kowal", "Kerr- Hislop", "Fryzjer"]})
wydrukować(a)

W pierwszym kroku zaimportuj pandy biblioteka. Możesz wtedy użyć zmiennej,

instagram viewer
a, aby przechowywać wynik z konstruktora DataFrame. Przekaż konstruktorowi słownik zawierający wymagane wartości.

Na koniec wyświetl zawartość wartości DataFrame za pomocą funkcji drukowania, aby sprawdzić, czy wszystko wygląda zgodnie z oczekiwaniami.

Podobnie możesz utworzyć kolejną ramkę DataFrame, b, który zawiera identyfikator i wartości wynagrodzenia.

b = pd. Ramka danych({"ID": ["001", "002", "003", "004", "005"],
"Pensja": [100000, 700000, 80000, 904750, 604772]})

wydrukować(b)

Możesz sprawdzić dane wyjściowe w konsoli lub IDE. Powinien potwierdzać zawartość Twoich DataFrames:

Czym połączenia różnią się od funkcji scalania w Pythonie?

Biblioteka pandas jest jedną z głównych bibliotek, których można używać do manipulowania DataFrames. Ponieważ ramki DataFrames zawierają wiele zestawów danych, w Pythonie dostępne są różne funkcje umożliwiające ich łączenie.

Python oferuje między innymi funkcje join i merge, których można użyć do łączenia DataFrames. Istnieje wyraźna różnica między tymi dwiema funkcjami, o których należy pamiętać przed użyciem jednej z nich.

Funkcja join łączy dwie ramki DataFrame na podstawie ich wartości indeksu. The funkcja scalania łączy DataFrames na podstawie wartości indeksu i kolumn.

Co musisz wiedzieć o złączeniach w Pythonie?

Zanim omówimy dostępne typy sprzężeń, oto kilka ważnych rzeczy, o których należy pamiętać:

  • Sprzężenia SQL to jedna z najbardziej podstawowych funkcji i są dość podobne do złączeń Pythona.
  • Aby dołączyć do DataFrames, możesz użyć pandy. DataFrame.join() metoda.
  • Domyślne sprzężenie wykonuje sprzężenie lewostronne, podczas gdy funkcja scalania wykonuje sprzężenie wewnętrzne.

Domyślna składnia złączenia Pythona jest następująca:

DataFrame.join (inne, włączone=Brak, jak='lewa/prawa/wewnętrzna/zewnętrzna', lsuffix='', rsuffix='',
sort=Fałszywy)

Wywołaj metodę join na pierwszej DataFrame i przekaż drugą DataFrame jako jej pierwszy parametr, inny. Pozostałe argumenty to:

  • na, który nazywa indeks, do którego ma się przyłączyć, jeśli jest więcej niż jeden.
  • Jak, który definiuje typ połączenia, w tym wewnętrzny, zewnętrzny, lewy i prawy.
  • lsuffix, który definiuje lewy ciąg sufiksu nazwy kolumny.
  • rosuffix, który definiuje prawy ciąg sufiksu nazwy kolumny.
  • sortować, która jest wartością logiczną wskazującą, czy należy posortować wynikową ramkę DataFrame.

Naucz się korzystać z różnych typów złączeń w Pythonie

Python ma kilka opcji złączenia, które możesz ćwiczyć w zależności od potrzeb danej godziny. Oto typy sprzężenia:

1. Dołącz do lewej

Lewe sprzężenie utrzymuje nienaruszone wartości pierwszego elementu DataFrame, jednocześnie wprowadzając pasujące wartości z drugiego. Na przykład, jeśli chcesz wprowadzić pasujące wartości z b, możesz to zdefiniować w następujący sposób:

c = a.połącz (b, jak="lewy", lsuffix = "_lewy", rsuffix = "_prawo", sortuj = Prawda)
wydrukować(c)

Po wykonaniu zapytania dane wyjściowe zawierają następujące odwołania do kolumn:

  • ID_pozostało
  • Fname
  • Lnazwa
  • ID_prawo
  • Pensja

To sprzężenie pobiera pierwsze trzy kolumny z pierwszej DataFrame i dwie ostatnie kolumny z drugiej DataFrame. Wykorzystał lsuffix oraz rosuffix wartości, aby zmienić nazwy kolumn identyfikatorów z obu zestawów danych, zapewniając unikatowe nazwy pól wynikowych.

Dane wyjściowe są następujące:

2. Prawe Dołącz

Prawe sprzężenie zachowuje nienaruszone wartości drugiej ramki DataFrame, jednocześnie wprowadzając pasujące wartości z pierwszej tabeli. Na przykład, jeśli chcesz wprowadzić pasujące wartości z a, możesz to zdefiniować w następujący sposób:

c = b.połącz (a, jak="prawo", lsuffix = "_prawo", rsuffix = "_lewy", sortuj = Prawda)
wydrukować(c)

Dane wyjściowe są następujące:

Jeśli przejrzysz kod, jest kilka ewidentnych zmian. Na przykład wynik zawiera kolumny drugiej ramki DataFrame przed kolumnami z pierwszej ramki DataFrame.

Powinieneś użyć wartości prawo dla Jak argument, aby określić prawe sprzężenie. Zwróć też uwagę, jak możesz zmienić lsuffix oraz rosuffix wartości odzwierciedlające charakter prawego sprzężenia.

W przypadku sprzężeń zwykłych możesz częściej używać sprzężeń lewych, wewnętrznych i zewnętrznych w porównaniu ze sprzężeniem prawym. Jednak użycie zależy wyłącznie od wymagań dotyczących danych.

3. Połączenie wewnętrzne

Sprzężenie wewnętrzne dostarcza pasujące wpisy z obu DataFrames. Ponieważ sprzężenia używają numerów indeksu do dopasowywania wierszy, sprzężenie wewnętrzne zwraca tylko te wiersze, które pasują. Na tej ilustracji użyjmy następujących dwóch ramek DataFrame:

a = pd. Ramka danych({"ID": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Ron", "Jan", "Helena", "Przędzarka", "Kenny", "Daryl", "Cathy"],
"Lnazwa": ["Keith", "Harley", "Kowal", "Kerr- Hislop", "Fryzjer", "Hooper", "Nadzieja"]})
b = pd. Ramka danych({"ID": ["001", "002", "003", "004", "005"],
"Pensja": [100000, 700000, 80000, 904750, 604772]})

wydrukować(a)
wydrukować(b)

Dane wyjściowe są następujące:

Możesz użyć sprzężenia wewnętrznego w następujący sposób:

c = a.połącz (b, lsuffix="_lewy", rsuffix="_prawo", jak='wewnętrzny')
wydrukować(c)

Wynikowe dane wyjściowe zawierają tylko wiersze, które istnieją w obu wejściowych ramkach DataFrames:

4. Połączenie zewnętrzne

Sprzężenie zewnętrzne zwraca wszystkie wartości z obu DataFrames. W przypadku wierszy bez pasujących wartości generuje wartość null w poszczególnych komórkach.

Używając tego samego DataFrame co powyżej, oto kod dla zewnętrznego sprzężenia:

c = a.połącz (b, lsuffix="_lewy", rsuffix="_prawo", jak='zewnętrzny')
wydrukować(c)

Używanie złączeń w Pythonie

Sprzężenia, podobnie jak ich odpowiedniki, scalanie i łączenie, oferują znacznie więcej niż zwykłą funkcję złączenia. Biorąc pod uwagę szereg opcji i funkcji, możesz wybrać opcje, które spełnią Twoje wymagania.

Otrzymane zbiory danych można sortować stosunkowo łatwo, z funkcją join lub bez niej, dzięki elastycznym opcjom, które oferuje Python.