Heim >Backend-Entwicklung >Python-Tutorial >Wie werden Pandas-DataFrames mithilfe verschiedener Join-Typen zusammengeführt?

Wie werden Pandas-DataFrames mithilfe verschiedener Join-Typen zusammengeführt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 13:17:11341Durchsuche

How Do Pandas DataFrames Merge Using Different Join Types?

Pandas Merging 101

Das Zusammenführen verstehen

Beim Zusammenführen werden zwei oder mehr DataFrames basierend auf gemeinsamen Schlüsseln kombiniert, um einen neuen DataFrame zu erstellen . Pandas bietet verschiedene Arten von Zusammenführungen, einschließlich INNER-, LEFT-, RIGHT- und FULL OUTER-Joins.

Grundlegende Join-Typen

a. INNER JOIN

  • Kombiniert Zeilen, die in beiden DataFrames gemeinsame Schlüssel haben.
  • Beispiel:

    left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)})
    right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': np.random.randn(4)})
    left.merge(right, on='key')

b. LEFT OUTER JOIN

  • Behält alle Zeilen aus dem linken DataFrame und fügt NaN-Werte für fehlende Schlüssel im rechten DataFrame hinzu.
  • Beispiel:

    left.merge(right, on='key', how='left')

c. RIGHT OUTER JOIN

  • Behält alle Zeilen aus dem rechten DataFrame und fügt NaN-Werte für fehlende Schlüssel im linken DataFrame hinzu.
  • Beispiel:

    left.merge(right, on='key', how='right')

d. FULL OUTER JOIN

  • Kombiniert alle Zeilen aus beiden DataFrames und fügt NaN-Werte für fehlende Schlüssel hinzu.
  • Beispiel:

    left.merge(right, on='key', how='outer')

Daten mit Links-/Rechts-Ausschluss ausschließen Joins

Wenn Sie bestimmte Zeilen ausschließen müssen, können Sie einen Links-ausschließenden oder Rechts-ausschließenden JOIN durchführen, indem Sie zunächst einen LEFT/RIGHT OUTER JOIN ausführen und filtern, um Zeilen aus dem anderen DataFrame auszuschließen.

e. Linksausschließender JOIN

  • Schließt Zeilen aus dem rechten DataFrame aus, die im linken DataFrame vorhanden sind.
  • Beispiel:

    (left.merge(right, on='key', how='left', indicator=True)
     .query('_merge == "left_only"')
     .drop('_merge', 1))

f. Rechts ausschließender JOIN

  • Schließt Zeilen aus dem linken DataFrame aus, die im rechten DataFrame vorhanden sind.
  • Beispiel:

    (left.merge(right, on='key', how='right', indicator=True)
     .query('_merge == "right_only"')
     .drop('_merge', 1))

g. ANTI JOIN

  • Kombiniert Zeilen, die nicht in beiden DataFrames vorhanden sind.
  • Beispiel:

    (left.merge(right, on='key', how='outer', indicator=True)
     .query('_merge != "both"')
     .drop('_merge', 1))

Umgang mit doppelten Schlüsselspalten

Zu vermeiden Wenn Sie Schlüsselspalten in der Ausgabe duplizieren möchten, können Sie vor dem Zusammenführen entsprechende Indizes als Schlüssel festlegen:

left3 = left2.set_index('keyLeft')
left3.merge(right2, left_index=True, right_on='keyRight')

Zusammenführung auf mehreren Spalten

Um mehrere Spalten zu verbinden, geben Sie a an Liste für on (oder left_on und right_on, je nach Bedarf).

left.merge(right, on=['key1', 'key2'] ...)

Zusätzliche Zusammenführung Funktionen

  • pd.merge_ordered: Für geordnete JOINs.
  • pd.merge_asof: Für ungefähre Joins.

Siehe Dokumentation zum Zusammenführen , join und concat für spezifischere Beispiele und Fälle.

Das obige ist der detaillierte Inhalt vonWie werden Pandas-DataFrames mithilfe verschiedener Join-Typen zusammengeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn