logo

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

Pandy

Pandas to wbudowana biblioteka w Pythonie, która służy do pracy z danymi relacyjnymi w języku programowania Python. Posiada wiele funkcji i struktur danych, które pomagają w operacjach na danych relacyjnych.

Jeśli dane są przechowywane w postaci wierszy i kolumn lub dane dwuwymiarowe, są ogólnie nazywane ramkami danych w pandach.

Jeśli mamy dwie ramki danych, to za pomocą pand możemy je połączyć lub scalić w jedną ramkę danych. Pandy zapewniają zestaw logiki do łączenia danych z dwóch różnych ramek danych, a także logikę do ich porównywania.

1. Korzystanie z funkcji concat().

W Pythonie możemy połączyć dwie ramki danych za pomocą funkcji concat() Pandy. Dane możemy łączyć w wierszach lub kolumnach. Funkcja ta łączy dane na jednej osi (wierszu lub kolumnie) i realizuje ustawioną logikę na innej osi (inny indeks).

Przykład:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

Wyjście:

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

Wyjaśnienie:

W powyższym kodzie najpierw zaimportowaliśmy bibliotekę Pandas do pliku. Następnie utworzyliśmy dwie ramki danych, z których każda zawiera trzy kolumny i cztery wiersze. Następnie użyliśmy funkcji concat, która łączy te dwie ramki danych w wierszach, a za pomocą funkcji wyświetlania wydrukowaliśmy to na ekranie.

2. Używanie złączeń w pandach

Rozumieliśmy koncepcję złączeń w bazie danych, gdzie łączymy dwie tabele w oparciu o jakiś wspólny atrybut. Ta sama metoda ma zastosowanie przy łączeniu ramek danych. W prostej metodzie concat() połączyliśmy wszystkie wiersze jeden w drugim i utworzyliśmy nową ramkę danych. W złączeniu określamy, jaki typ złączenia chcemy wykonać na tabeli, czy jest to złączenie wewnętrzne, czy złączenie zewnętrzne. Niezależnie od typu złączenia, czy to złączenia wewnętrznego (przecięcia), czy złączenia zewnętrznego (unia), zostanie zdefiniowany w atrybucie łączenia.

Przykład:

shweta tiwari
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

Wyjście:

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

Wyjaśnienie:

W powyższym kodzie mamy dwie ramki daraframe, które zawierają dwie kolumny i cztery wiersze. Obie ramki danych mają różne nazwy kolumn, a w funkcji concat() zastosowaliśmy złącze wewnętrzne, które przyjmuje część przecięcia.

W atrybucie osi zainicjowaliśmy wartość jeden, dzięki czemu otrzymaliśmy całe dane.

Przykład:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Wyjście:

śpij w javascript
Jak połączyć dwie ramki danych w Pythonie - Pandy

Ponieważ nie ma wspólnego atrybutu i zastosowano sprzężenie wewnętrzne, jako wynik otrzymaliśmy pustą ramkę danych. Jeśli w obu ramkach danych występuje wspólny atrybut:

Przykład:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Wyjście:

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

Wyjaśnienie:

W powyższym kodzie mamy jeden atrybut „id”, który jest wspólny, więc ramka danych jest tworzona w oparciu tylko o wspólne atrybuty.

3. Korzystanie z metody append().

Zamiast metody concat() możemy zastosować metodę append(). Ta metoda append() jest stosowana do jednej z ramek danych.

Przykład:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

Wyjście:

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

Wyjaśnienie:

W powyższym kodzie połączyliśmy dwie ramki danych za pomocą metody dołączania.