logo

Jak połączyć dwie ramki danych w Pythonie – Pandy?

W wielu rzeczywistych sytuacjach dane, których chcemy użyć, znajdują się w wielu plikach. Często musimy połączyć te pliki w jedną ramkę danych w celu analizy danych. Pandy zapewniają takie możliwości łatwego łączenia serii lub ramki danych z różnymi rodzajami logiki zbiorów dla indeksów i funkcjonalnością algebry relacyjnej w przypadku operacji typu łączenia/scalania. Możemy także łączyć dane z wielu tabel w Pandy . Ponadto pandy udostępniają również narzędzia do porównywania dwóch serii lub ramek danych i podsumowywania ich różnic.

Łączenie ramek danych w Pandach

Funkcja concat() w Pandach służy do dołączania kolumn lub wierszy z jednej ramki DataFrame do drugiej. The Funkcja concat() Pandy wykonuje całą ciężką pracę związaną z wykonywaniem operacji łączenia wzdłuż osi, wykonując jednocześnie opcjonalną logikę zestawów (zsumowanie lub przecięcie) indeksów (jeśli istnieją) na innych osiach.



Python3








import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> frames>=> [df1, df2]> result>=> pd.concat(frames)> display(result)>

>

>

Wyjście:

    id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Dołączanie DataFrames w Pandach

Kiedy łączyliśmy nasze ramki danych, po prostu dodaliśmy je do siebie, tj. ułożyliśmy je pionowo lub obok siebie. Innym sposobem łączenia ramek danych jest użycie kolumn w każdym zestawie danych zawierających wspólne wartości (wspólny unikalny identyfikator). Łączenie ramek danych przy użyciu wspólnego pola nazywa się łączeniem. Kolumny zawierające wspólne wartości nazywane są kluczami łączenia. Łączenie ramek DataFrame w ten sposób jest często przydatne, gdy jedna ramka DataFrame jest tabelą przeglądową zawierającą dodatkowe dane, które chcemy uwzględnić w drugiej.

Notatka: Ten proces łączenia tabel jest podobny do tego, co robimy z tabelami w pliku Baza danych SQL .

Podczas sklejania wielu ramek danych można wybrać sposób obsługi pozostałych osi (innych niż ta, która jest łączona). Można to zrobić na dwa następujące sposoby:

  • Weźmy połączenie ich wszystkich, Join=’outer’. Jest to opcja domyślna, ponieważ powoduje zerową utratę informacji.
  • Wybierz skrzyżowanie, dołącz = „inner”.

Przykład: połączenie wewnętrzne dwóch ramek danych przy użyciu metody concat().

W tym przykładzie dwie pandy DataFrames,df1>Idf3>, są łączone przy użyciu sprzężenia wewnętrznego w oparciu o ich indeksy. Wynikowa ramka danych o nazwie „result” zawiera tylko wiersze, w których znajduje się kolumna „id”.df1>odpowiada kolumnie „Miasto” wdf3>.

Python3


shweta tiwari



import> pandas as pd> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # the default behaviour is join='outer'> # inner join> result>=> pd.concat([df1, df3], axis>=>1>, join>=>'inner'>)> display(result)>

>

>

Wyjście:

  id Name City Age  0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>

Łączenie za pomocą funkcji append().

Przydatnym skrótem do concat() jest metoda instancji append() w Series i DataFrame. Tej metody można użyć do łączenia danych z wielu tabel w Pandach. Metody te faktycznie były starsze niż concat.

Przykład 1: Łączenie dwóch ramek danych przy użyciu metody append().

W tym przykładzie dwie ramki danych Pandas,df1>Idf2>, są łączone za pomocąappend>metodę, w wyniku czego powstaje nowa ramka danych o nazwie „result”. Wynikowa ramka DataFrame zawiera wszystkie wiersze z obudf1>Idf2>, z indeksem ciągłym.

śpij w javascript

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> # append method> result>=> df1.append(df2)> display(result)>

>

>

Wyjście:

   id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Notatka: append() może wymagać połączenia wielu obiektów.

Przykład 2: Połącz dane z wielu tabel w Pandach

W tym przykładzie trzy ramki danych Pandas,df1>,df2>, Idf3>, są dołączane razem za pomocąappend>metoda. Wynikowa ramka danych o nazwie „result” łączy wszystkie wiersze z trzech ramek danych, zachowując ciągły indeks.

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # appending multiple DataFrame> result>=> df1.append([df2, df3])> display(result)>

>

>

Wyjście:

   id Name City Age  0 A01 ABC NaN NaN 1 A02 PQR NaN NaN 2 A03 DEF NaN NaN 3 A04 GHI NaN NaN 0 B05 XYZ NaN NaN 1 B06 TUV NaN NaN 2 B07 MNO NaN NaN 3 B08 JKL NaN NaN 0 NaN NaN MUMBAI 12 1 NaN NaN PUNE 13 2 NaN NaN MUMBAI 14 3 NaN NaN DELHI 12>