Pandas verschmelzen() ist definiert als der Prozess, die beiden Datensätze zu einem zusammenzuführen und die Zeilen basierend auf den gemeinsamen Attributen oder Spalten auszurichten. Es ist ein Einstiegspunkt für alle standardmäßigen Datenbankverknüpfungsvorgänge zwischen DataFrame-Objekten:
Syntax:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parameter:
- „one_to_one“ oder „1:1“: Es prüft, ob Zusammenführungsschlüssel sowohl im linken als auch im rechten Datensatz eindeutig sind.
- „one_to_many“ oder „1:m“: Es prüft, ob Zusammenführungsschlüssel nur im linken Datensatz eindeutig sind.
- „many_to_one“ oder „m:1“: Es prüft, ob Zusammenführungsschlüssel nur im richtigen Datensatz eindeutig sind.
- „many_to_many“ oder „m:m“: Es ist zulässig, führt jedoch nicht zu Überprüfungen.
Es ist ein Objekt, das mit dem DataFrame verschmilzt.
Art der durchzuführenden Zusammenführung.
Dabei handelt es sich um Spalten- oder Indexebenennamen, mit denen verknüpft werden soll. Es muss sowohl im linken als auch im rechten DataFrame gefunden werden. Wenn on „None“ ist und keine Zusammenführung von Indizes erfolgt, wird standardmäßig die Schnittmenge der Spalten in beiden DataFrames verwendet.
links auf: Label oder Liste oder Array-ähnlich
Dabei handelt es sich um Spalten- oder Indexebenennamen aus dem linken DataFrame, die als Schlüssel verwendet werden sollen. Es kann ein Array sein, dessen Länge der Länge des DataFrame entspricht.
Dabei handelt es sich um Spalten- oder Indexebenennamen aus dem rechten DataFrame, die als Schlüssel verwendet werden sollen. Es kann ein Array sein, dessen Länge der Länge des DataFrame entspricht.
Es verwendet den Index aus dem linken DataFrame als Verbindungsschlüssel, wenn „true“. Im Fall von MultiIndex (hierarchisch) sollten viele Schlüssel im anderen DataFrame (entweder der Index oder einige Spalten) mit der Anzahl der Ebenen übereinstimmen.
Es verwendet den Index aus dem rechten DataFrame als Join-Schlüssel. Es hat die gleiche Verwendung wie der left_index.
Wenn True, werden die Join-Schlüssel im Ergebnis-DataFrame in lexikografischer Reihenfolge sortiert. Ansonsten hängt die Reihenfolge der Join-Schlüssel vom Join-Typ (How-Schlüsselwort) ab.
Es werden Suffixe angewendet, um die Spaltennamen im linken bzw. rechten DataFrame zu überlappen. Die Spalten verwenden (False, False)-Werte, um bei Überlappung eine Ausnahme auszulösen.
Wenn True, wird eine Kopie des DataFrame zurückgegeben.
Andernfalls kann die Kopie vermieden werden.
Wenn True, wird eine Spalte zur Ausgabe von DataFrame hinzugefügt. _verschmelzen ' mit Informationen zur Quelle jeder Zeile. Wenn es sich um eine Zeichenfolge handelt, wird dem Ausgabe-DataFrame eine Spalte mit Informationen zur Quelle jeder Zeile hinzugefügt und die Spalte erhält den Namen „Wert einer Zeichenfolge“. Die Informationsspalte ist als kategorialer Typ definiert und hat den Wert:
Wenn es angegeben ist, prüft es den unten angegebenen Zusammenführungstyp:
Beispiel 1: Zwei DataFrames auf einem Schlüssel zusammenführen
# 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)
Ausgabe
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
Beispiel 2: Zwei DataFrames auf mehreren Schlüsseln zusammenführen:
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')
Ausgabe
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