logo

Pandas DataFrame.merge()

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:

    Rechts: DataFrame oder benannte Serie
    Es ist ein Objekt, das mit dem DataFrame verschmilzt.Wie: {'left', 'right', 'outer', 'inner'}, Standard 'inner'
    Art der durchzuführenden Zusammenführung.
      links:Es werden nur Schlüssel aus dem linken Frame verwendet, ähnlich einem SQL-Links-Outer-Join. Schlüsselreihenfolge beibehalten.Rechts:Es werden nur Schlüssel aus dem rechten Frame verwendet, ähnlich einem SQL Right Outer Join; Schlüsselreihenfolge beibehalten.äußere:Es verwendete die Vereinigung der Schlüssel beider Frames, ähnlich einem SQL-Full-Outer-Join; Schlüssel lexikografisch sortieren.innere:Es verwendet die Schnittmenge der Schlüssel aus beiden Frames, ähnlich einem SQL-Inner-Join. Behalten Sie die Reihenfolge der linken Tasten bei.
    An: Etikett oder Liste
    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.direkt am: Label oder Liste oder Array-ähnlich
    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.left_index: bool, Standardwert False
    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.right_index: bool, Standardwert False
    Es verwendet den Index aus dem rechten DataFrame als Join-Schlüssel. Es hat die gleiche Verwendung wie der left_index.Sortieren: bool, Standardwert False
    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.Suffixe: Tupel von (str, str), Standard ('_x', '_y')
    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.Kopieren: bool, Standardwert True
    Wenn True, wird eine Kopie des DataFrame zurückgegeben.
    Andernfalls kann die Kopie vermieden werden.Indikator: bool oder str, Standardwert False
    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:
      'left_only'für die Beobachtungen, deren Zusammenführungsschlüssel nur links im DataFrame erscheint, wohingegen'right_only'ist für Beobachtungen definiert, in denen der Zusammenführungsschlüssel nur „rechts“ im DataFrame erscheint.'beide'wenn der Zusammenführungsschlüssel der Beobachtung in beiden gefunden wird.
    bestätigen: str, optional
    Wenn es angegeben ist, prüft es den unten angegebenen Zusammenführungstyp:
    • „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.

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