Heim > Artikel > Backend-Entwicklung > Wie finde ich Zeilen, die in einem Datenrahmen vorhanden sind, in einem anderen jedoch nicht (Vergleich von df1 und df2)?
Datenrahmen vergleichen: Zeilen finden, die in einem, aber nicht im anderen vorhanden sind
Der Vergleich von Datenrahmen zur Identifizierung von Unterschieden ist für die Qualitätssicherung und Zusammenführung von Daten von entscheidender Bedeutung Operationen. In diesem Fall haben wir zwei Datenrahmen (df1 und df2) mit einer bestimmten Struktur und müssen die in df2, aber nicht in df1 vorhandenen Zeilen ermitteln.
Zunächst führten Versuche, Datenrahmen mit df1 != df2 zu vergleichen, zu ein Fehler. Dieser Ansatz funktioniert nur für Datenrahmen mit identischen Zeilen und Spalten. Um symmetrische Unterschiede zu finden, benötigen wir einen anderen Ansatz.
Eine Methode besteht darin, die Datenrahmen zu verketten:
df = pd.concat([df1, df2]) df = df.reset_index(drop=True)
Anschließend wird der verkettete Datenrahmen nach allen Spalten gruppiert:
df_gpby = df.groupby(list(df.columns))
Als nächstes identifizieren wir die eindeutigen Datensätze, indem wir die Indexwerte erhalten, bei denen nur eine Zeile vorhanden ist:
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
Mithilfe dieser Indizes können wir den Datenrahmen filtern, um das gewünschte Ergebnis zu erhalten:
df.reindex(idx)
Dieser Ansatz liefert die Zeilen, die in df2 vorhanden sind, aber in df1 fehlen, basierend auf dem Vergleich des Datumsindex und der Fruchtspalte.
Das obige ist der detaillierte Inhalt vonWie finde ich Zeilen, die in einem Datenrahmen vorhanden sind, in einem anderen jedoch nicht (Vergleich von df1 und df2)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!