Pandy łączyć() definiuje się jako proces łączenia dwóch zbiorów danych w jeden i wyrównywania wierszy w oparciu o wspólne atrybuty lub kolumny. Jest to punkt wejścia dla wszystkich standardowych operacji łączenia baz danych pomiędzy obiektami DataFrame:
Składnia:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parametry:
- „one_to_one” lub „1:1”: sprawdza, czy klucze scalające są unikalne zarówno w lewym, jak i prawym zbiorze danych.
- „one_to_many” lub „1:m”: sprawdza, czy klucze scalania są unikalne tylko w lewym zbiorze danych.
- „many_to_one” lub „m:1”: sprawdza, czy klucze scalania są unikalne tylko w odpowiednim zbiorze danych.
- „many_to_many” lub „m:m”: jest dozwolone, ale nie skutkuje sprawdzeniem.
Jest to obiekt, który łączy się z DataFrame.
Typ scalania, który ma zostać wykonany.
Jest to nazwa poziomu kolumny lub indeksu, do której można się przyłączyć. Należy go znaleźć zarówno w lewej, jak i prawej ramce danych. Jeśli opcja ta ma wartość Brak i nie łączy się w indeksach, domyślnie jest to przecięcie kolumn w obu ramkach DataFrame.
lewy_na: etykieta lub lista lub tablica
Jest to nazwa kolumny lub poziomu indeksu z lewej ramki DataFrame, której można używać jako klucza. Może to być tablica o długości równej długości ramki DataFrame.
Jest to nazwa poziomu kolumny lub indeksu z prawej ramki danych, której można używać jako kluczy. Może to być tablica o długości równej długości ramki DataFrame.
Używa indeksu z lewej ramki danych jako kluczy łączenia, jeśli ma wartość true. W przypadku MultiIndexu (hierarchicznego) wiele kluczy w drugiej ramce DataFrame (albo indeks, albo niektóre kolumny) powinno odpowiadać liczbie poziomów.
Używa indeksu z prawej ramki danych jako klucza łączenia. Ma takie samo zastosowanie jak left_index.
Jeśli ma wartość True, sortuje klucze łączenia w porządku leksykograficznym w wynikowej ramce DataFrame. W przeciwnym razie kolejność kluczy złączenia zależy od typu złączenia (słowa kluczowego how).
Przyrostek ma zastosowanie do nakładania się nazw kolumn odpowiednio w lewej i prawej ramce DataFrame. Kolumny używają wartości (False, False), aby zgłosić wyjątek w przypadku nakładania się.
Jeśli ma wartość True, zwraca kopię ramki DataFrame.
W przeciwnym razie może uniknąć kopiowania.
Jeśli prawda, dodaje kolumnę do wyjściowej ramki danych „ _łączyć ' z informacją o źródle każdego wiersza. Jeśli jest to ciąg znaków, do wyjściowej ramki DataFrame zostanie dodana kolumna zawierająca informacje o źródle każdego wiersza, a kolumna otrzyma nazwę wartości ciągu znaków. Kolumna informacyjna jest definiowana jako typu kategorycznego i przyjmuje wartość:
Jeśli jest określony, sprawdza typ scalania podany poniżej:
Przykład 1: Połącz dwie ramki danych na kluczu
# import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right)
Wyjście
id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6
Przykład 2: Połącz dwie ramki danych na wielu kluczach:
import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id')
Wyjście
id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6