Heim >Backend-Entwicklung >Python-Tutorial >Wie vergleiche ich DataFrames für Unterschiede in Zeilen?
Vergleichen von Datenrahmen auf Unterschiede in Zeilen
Beim Vergleich zweier Datenrahmen mit identischen Zeilen und Spalten wird die einfache Vergleichsoperation (df1 != df2) verwendet. ist ausreichend. Wenn die Datenrahmen jedoch unterschiedliche Zeilensätze haben, ist ein anderer Ansatz erforderlich, um die Unterschiede zu identifizieren.
Concat, Group und Filter
Eine Methode zum Vergleichen von Datenrahmen Zeilenunterschiede bestehen darin, sie zu verketten, nach Spalten zu gruppieren und die eindeutigen Zeilen zu filtern. Der folgende Code veranschaulicht dies:
<code class="python">df = pd.concat([df1, df2]) df = df.reset_index(drop=True) df_gpby = df.groupby(list(df.columns)) idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1] result = df.reindex(idx)</code>
Der verkettete Datenrahmen (df) wird nach allen seinen Spalten (df_gpby) gruppiert. Die Methode „groups.values()“ gibt eine Iterable von Tupeln zurück, wobei jedes Tupel die Indizes eindeutiger Zeilen darstellt. Das Filtern der Tupel nach Länge (len(x) == 1) identifiziert die Zeilen, die nur in einem Datenrahmen vorhanden sind. Abschließend wird durch die Neuindizierung des Datenrahmens mit den gefilterten Indizes (idx) ein Datenrahmen erstellt, der die Zeilenunterschiede enthält.
Beispielausgabe
Unter Verwendung der bereitgestellten Beispieldatenrahmen:
>>> result Date Fruit Num Color 9 2013-11-25 Orange 8.6 Orange 8 2013-11-25 Apple 22.1 Red
Diese Ausgabe zeigt die Zeilen, die sich in df2, aber nicht in df1 befinden.
Das obige ist der detaillierte Inhalt vonWie vergleiche ich DataFrames für Unterschiede in Zeilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!