0Pricing
Learn AI with Python · Lektion

Fortgeschrittenes Merging und Joining

pd.merge() mit how, on, left_on/right_on, suffixes und merge_asof für zeitbasierte Joins.

Fortgeschrittenes Merging und Joining ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

DataFrames kombinieren

pd.merge verknüpft zwei DataFrames anhand gemeinsamer Schlüssel, genau wie ein SQL-JOIN. Die how-Optionen sicher zu beherrschen ist für die Arbeit mit relationalen Daten unerlässlich.

import pandas as pd
left = pd.DataFrame({"id": [1, 2, 3], "name": ["a", "b", "c"]})
right = pd.DataFrame({"id": [2, 3, 4], "score": [90, 80, 70]})

Inner Join (Standard)

how="inner" behält nur Schlüssel, die in BEIDEN DataFrames vorhanden sind. Dies ist der Standard.

print(pd.merge(left, right, on="id", how="inner"))
#    id name  score
# 0   2    b     90
# 1   3    c     80

Left Join

how="left" behält jede Zeile aus dem linken DataFrame; nicht übereinstimmende Spalten der rechten Seite werden zu NaN. Dies ist der häufigste Join in der Datenanalyse.

print(pd.merge(left, right, on="id", how="left"))
#    id name  score
# 0   1    a    NaN
# 1   2    b   90.0
# 2   3    c   80.0

Outer Join

how="outer" behält alle Schlüssel beider Seiten und füllt Lücken mit NaN. Verwenden Sie dies, um die vollständige Vereinigung aller Datensätze zu sehen.

print(pd.merge(left, right, on="id", how="outer"))
# includes id 1 (no score) and id 4 (no name)

Join mit unterschiedlichen Spaltennamen

Wenn die Schlüsselspalten unterschiedlich benannt sind, verwenden Sie statt on die Argumente left_on und right_on.

r2 = right.rename(columns={"id": "user_id"})
print(pd.merge(left, r2, left_on="id", right_on="user_id"))

Suffixe für überlappende Spalten

Wenn beide DataFrames eine Nicht-Schlüsselspalte mit demselben Namen enthalten, hängt pandas _x und _y an. Überschreiben Sie diese Suffixe mit suffixes, um für Klarheit zu sorgen.

a = pd.DataFrame({"id": [1], "val": [10]})
b2 = pd.DataFrame({"id": [1], "val": [99]})
print(pd.merge(a, b2, on="id", suffixes=("_old", "_new")))

Die indicator-Spalte

indicator=True fügt eine _merge-Spalte hinzu, die die Herkunft jeder Zeile angibt: left_only, right_only oder both. Das ist für die Überprüfung von Joins äußerst wertvoll.

print(pd.merge(left, right, on="id", how="outer", indicator=True))
# _merge tells you where each row came from

Probleme bei Joins diagnostizieren

Durch das Filtern nach dem Indikator lassen sich nicht übereinstimmende Schlüssel schnell erkennen – eine häufige Ursache für unbemerkt verworfene Daten.

m = pd.merge(left, right, on="id", how="outer", indicator=True)
print(m[m["_merge"] != "both"])   # rows that did not match

merge_asof für zeitbasierte Joins

pd.merge_asof führt Joins anhand des NÄCHSTGELEGENEN Schlüssels statt anhand einer exakten Übereinstimmung durch. Die Funktion wurde speziell für die Ausrichtung von Zeitreihen entwickelt, zum Beispiel um jedem Trade die zuletzt davor liegende Kursnotierung zuzuordnen. Beide DataFrames müssen nach dem Schlüssel sortiert sein.

trades = pd.DataFrame({"time": [1, 3, 7], "price": [10, 11, 12]})
quotes = pd.DataFrame({"time": [0, 2, 5], "bid": [9, 10, 11]})
print(pd.merge_asof(trades, quotes, on="time"))

Richtung von merge_asof

Standardmäßig sucht merge_asof RÜCKWÄRTS (nach dem letzten Schlüssel am oder vor dem aktuellen). Verwenden Sie direction="forward" oder "nearest", um die Zuordnungsregel zu ändern.

print(pd.merge_asof(trades, quotes, on="time", direction="nearest"))

Den richtigen Join auswählen

Verwenden Sie inner, um nur Übereinstimmungen beizubehalten, left, um eine Primärtabelle anzureichern, outer für die vollständige Vereinigung und merge_asof für zeitlich ausgerichtete Joins mit Schlüsseln, die ungefähr übereinstimmen.

Kurzer Test

Testen Sie Ihr Wissen über Joins.

Zusammenfassung

Werkzeuge zum Zusammenführen:

  • how= inner / left / outer steuert, welche Schlüssel erhalten bleiben
  • on gegenüber left_on/right_on für die Schlüsselspalten
  • suffixes unterscheiden überlappende Namen
  • indicator=True überprüft die Herkunft der Zeilen
  • pd.merge_asof für zeitbasierte Joins nach dem nächstgelegenen Schlüssel (zuerst sortieren)

Häufig gestellte Fragen

Ist die Lektion „Fortgeschrittenes Merging und Joining“ kostenlos?

Ja — der vollständige Text von „Fortgeschrittenes Merging und Joining“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Fortgeschrittenes Merging und Joining“?

pd.merge() mit how, on, left_on/right_on, suffixes und merge_asof für zeitbasierte Joins. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Fortgeschrittenes Merging und Joining“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. GroupBy und Aggregation
  2. Pivot-Tabellen und Kreuztabellierung
  3. Fortgeschrittenes Merging und Joining
  4. Zeitreihen in Pandas
← Zurück zu Learn AI with Python