Pandy łączą ramki danych

Pandy łączą ramki danych
Pandy zapewniają szeroki zakres narzędzi i funkcji do manipulacji danymi, w tym scalanie ram danych. Scalanie DataFrame pozwala nam zarówno utworzyć ramkę danych, zmieniając oryginalne źródło danych, jak i generowanie nowej ramki danych bez zmiany źródła danych. Fraza „dołącz” odnosi się do połączenia dwóch ram danych, aby utworzyć nową ramkę danych. Tak więc, jeśli znasz SQL lub inne dane tabelaryczne, z pewnością wiesz, co to implikuje. Właściwe zrozumienie typów połączenia może być trudne, jeśli jesteś początkującym (zewnętrzny, wewnętrzny, lewy, prawy). W tym samouczku omówimy niektóre rodzaje połączenia z przykładami. Funkcje Concat () i Merge () będą naszym głównym celem w tym samouczku. Aby zapewnić Ci jak najwięcej przydatnych alternatyw, porozmawiamy o innych technikach scalania.

Jak łączyć ramki danych w pandy

Można zastosować kilka metod do połączenia dwóch lub więcej ram danych. Omówimy niektóre z nich w następujących przykładach.

Przykład 1: Połączenie dwóch pandasFrame za pomocą funkcji merge ()
Rozpoczynamy ten przykład od tworzenia dwóch prostych ram danych i nazywaniem ich „DF1” i „DF2”. Aby utworzyć ramki danych, musimy najpierw zaimportować moduł pandas, aby użyć jego funkcji. PD.DataFrame służy do tworzenia naszych ramek danych.

Aby utworzyć nasze ramki danych, przekazujemy słowniki wewnątrz PD.DataFrame () i przypisz ramki danych do zmiennych „DF1” i „DF2”.

W naszym „DF1” mamy dwie kolumny - „osoba” i „id” - które przechowują imiona osób i numery identyfikatorów tych osób, odpowiednio.

W naszym drugim ramie danych „DF2” istnieją również dwie kolumny - „id” i „pensja” - przechowują numery identyfikacyjne i pensje osób fizycznych. Użyjmy funkcji merge (), aby dołączyć do tych ramek danych. Rzuć okiem na wszystkie opcje, które ta metoda może zaakceptować przed kontynuowaniem:

Składnia

Z wyjątkiem parametrów prawej i lewej, większość tych parametrów ma wartości domyślne. Nazwy komputerów danych, które łączymy, są zawarte w tych dwóch parametrach. Nowa ramka danych jest zwracana przez samą funkcję, którą zapisujemy w zmiennej „Merge_df”.

Ponieważ identyfikator kolumny w obu ramach danych „DF1” i „DF2” ma tę samą etykietę, metoda Merge () automatycznie łączy dwie formy danych na podstawie tego klucza. Parametry left_on = ”Nazwa lewej kolumny” i prawy_on = „Nazwa prawej kolumny”, aby wyraźnie określić klucze dla naszych danych danych, jeśli nie ma kolumny o tej samej nazwie kolumny w obu ramach danych. Wydrukujmy naszą nową połączoną ramkę danych z funkcją print ().

Jak widać, scalony DF zawiera tylko 4 wiersze, a oryginał DF2 zawiera 5 wierszy. Wynika to z faktu, że nowa ramka danych jest tworzona przez przecinanie prawej i lewej strony danych, gdy domyślna wartość parametru „jak” jest ustawiona na „wewnętrzną” wewnątrz PD.funkcja scal (). Dlatego połączona ramka danych nie zawierałaby identyfikatora, którego brakuje w jednej z tabel.

Jeśli prawa i lewe rzędy zostały przełączone, nadal jest to prawdą:

Wyjście jest takie same.

Ale identyfikator „005” nadal nie jest częścią połączonych ramek danych. Mimo że żadne z rzędów nie przecinają się, mogą wystąpić sytuacje, w których chcemy uwzględnić dane obu ramek danych w połączonej ramce danych zawierającej wszystkie jego wiersze.

Możemy ustawić parametr „jak” na „w prawo” wewnątrz funkcji merge ().

Funkcja zawiera każdy element prawej ramy danych „DF2” i lewą rękę danych „DF1” za pomocą prawego połączenia. Jeśli brakowało wierszy w „DF1”, używamy how = "left".

Przykład 2: Połączenie dwóch pandasFrame za pomocą funkcji łączenia ()
Dołącz () jest funkcją samej ramki danych, w przeciwieństwie do scalania (), która jest funkcją instancji panda. Można go zatem użyć w ramce danych jak metoda statyczna. Najpierw utwórzmy dwa przykładowe struki danych DF1 i DF2, abyśmy mogli je połączyć lub połączyć za pomocą funkcji łączenia ().

Aby zobaczyć zawartość obu ramek, wydrukujmy je jeden po drugim.

Teraz wydrukuj drugą ramkę danych „DF2”.

Ponieważ stworzyliśmy nasze ramki danych, spójrz na składnię funkcji Join ():

Składnia

Nasza lewa „DF1” to ta, na której nazywamy funkcję łączenia (). Nasze właściwa strumienia danych „DF2” to ten w parametrze „Innym” wewnątrz funkcji połączenia (). Parametr „jak” akceptuje jeden z parametrów obsługi (po lewej, prawej, zewnętrznej lub wewnętrznej), podczas gdy parametr „IS” domyślnie jest ustawiony na lewy. Parametr „ON” może zaakceptować jeden lub więcej argumentów (lista klawiszy), aby określić pasujący klucz.

Teraz dołączamy do DF2 z DF1.

Jak widać, mamyFrame „DF1” i „DF2” za pomocą funkcji Joint (). Dane wyjściowe funkcji łączenia () można modyfikować za pomocą różnych parametrów i określając różne argumenty dla nich.

Przykład 3: Połączenie dwóch panów danych Pandas za pomocą funkcji concat ()
W porównaniu z merge () i łączeniem (), konatenacja jest nieco bardziej elastyczna, ponieważ umożliwia nam scalanie ram danych w poziomie (pod względem kolumny) lub w pionie (pod względem wiary). Główną wadą jest to, że dane są eliminowane lub odrzucane, jeśli etykiety kolumnowe nie pasują lub nie istnieją w obu ramach danych. Składnia funkcji jest następująca:

Składnia

Parametry

  • OBJS: Lista obiektów DataFrame ([DataFrame1, DataFrame2,…]), które zostaną połączone.
  • oś: Określa kolejność połączenia, pod względem kolumnowym, jeśli jest określona do 1 i rzędu, jeśli określono do 0.
  • dołączyć: Można go określić jako „zewnętrzny” dla Unii i „Wewnętrzny” dla skrzyżowania.
  • ignore_index: Może to skutkować zduplikowymi wartościami indeksu, ponieważ „Ignoruj ​​indeks” jest domyślnie false, co utrzymuje wartości indeksu oryginalne ramki danych. Jeśli prawda, ponownie podpisuje indeks w kolejności sekwencyjnej, jednocześnie ignorując oryginalne wartości.
  • Klucze: Możemy utworzyć indeks hierarchiczny za pomocą klawiszy. Rozważ to jako dodatkowy poziom indeksu zewnętrznego lewej, który pomaga w identyfikacji indeksów podczas powielania. Teraz utwórzmy naszą strumień danych o tych samych etykietach kolumnowych i danych danych.

Wydrukujmy nasze struki danych „DF1” i „DF2”, aby zobaczyć ich zawartość.

Mamy dwie kolumny w „DF1”. Teraz „DF2” musi mieć dwie kolumny o tych samych nazwiskach.

Rzeka danych „DF2” składa się również z kolumn „nazwa” i „wiek” o tych samych danych, co kolumny „DF1”.

Teraz przekazujemy DF1 i DF2 w parametrze OBJS jako lista ([DF1, DF2]), aby połączyć je. A następnie przypisujemy nową scaloną ramkę danych do „scalonej” zmiennej.

Jak widać, dane „DF2” są połączone z „DF1”. Zwróć jednak uwagę na indeksy po lewej stronie każdego rzędu. Liczby 0, 1 i 2 powtarzają się. Ustawiamy argument ignor_index na true, aby uzyskać odrębne wartości indeksu.

Wartość osi należy zmienić z wartości domyślnej od 0 do 1, aby połączyć kolumnę „DF1” i „DF2”.

Zauważysz, że różni się od scerge (), który pasuje do dwóch ram danych na kluczu.

Istnieją również inne metody w pandy, takie jak append () i combine_first () i aktualizacja (), aby połączyć dwie formy danych.

Wniosek

W tym samouczku widzieliśmy, że połączenie ramek danych pozwala nam zarówno utworzyć ramkę danych, zmieniając oryginalne źródło danych, jak i generowanie nowej ramki danych bez zmiany źródła danych. Widzieliśmy składnię funkcji używanych do scalania ramek danych. Próbowaliśmy cię nauczyć, w jaki sposób możesz połączyć dwie funkcje Data Pandas za pomocą funkcji łączenia (), merge () i concat (). Teraz możesz być w stanie połączyć dataFrame ().