Heim  >  Artikel  >  Backend-Entwicklung  >  Wie finde ich Zeilen, die in einem Datenrahmen vorhanden sind, in einem anderen jedoch nicht (Vergleich von df1 und df2)?

Wie finde ich Zeilen, die in einem Datenrahmen vorhanden sind, in einem anderen jedoch nicht (Vergleich von df1 und df2)?

Susan Sarandon
Susan SarandonOriginal
2024-10-19 21:07:03658Durchsuche

How to Find Rows Present in One Dataframe but Not in Another (Comparing df1 and 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!

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