Wie kann man den Unterschied zwischen zwei Pandas-DataFrames effizient finden?

Linda Hamilton
Freigeben: 2024-11-22 06:14:09
Original
310 Leute haben es durchsucht

How to Efficiently Find the Difference Between Two Pandas DataFrames?

So finden Sie den Unterschied zwischen zwei Datenrahmen

Bei der Arbeit mit Daten haben wir oft zwei Datenrahmen, die überlappende Informationen enthalten, aber enthalten auch eindeutige Zeilen oder Spalten. Um einen Datenrahmen zu erhalten, der nur die Zeilen und Spalten enthält, die in einem Datenrahmen und nicht im anderen vorhanden sind, müssen wir eine Datenrahmen-Differenzoperation durchführen.

Um dies zu erreichen, können wir die Funktion drop_duplicates mit verwenden keep=False-Parameter, der effektiv alle doppelten Zeilen aus einem verketteten Datenrahmen entfernt:

pd.concat([df1,df2]).drop_duplicates(keep=False)
Nach dem Login kopieren

Diese Methode geht jedoch davon aus, dass beide Datenrahmen frei von sind Duplikate. Wenn in den ursprünglichen Datenrahmen Duplikate vorhanden sind, werden diese durch die obige Methode versehentlich entfernt. Um dieses Szenario zu bewältigen, können wir einen von zwei alternativen Ansätzen verwenden:

Methode 1: Verwendung von isin mit Tupeln

Diese Methode beinhaltet die Erstellung eines Tupels für jede Zeile im Datenrahmen und dann mit isin prüfen, ob ein Tupel aus df1 in df2 vorhanden ist. Die Zeilen, die nur in df1 vorhanden sind, bleiben erhalten:

df1[~df1.apply(tuple,1).isin(df2.apply(tuple,1))]
Nach dem Login kopieren

Methode 2: Mit Indikator zusammenführen

Durch Zusammenführen der beiden Datenrahmen mit dem Indikatorparameter True, Wir können eine neue Spalte erstellen, die angibt, welche Zeilen für df1 oder df2 eindeutig sind. Die für df1 eindeutigen Zeilen können dann herausgefiltert werden, indem Zeilen ausgewählt werden, in denen der _merge-Spaltenwert „left_only“ ist:

df1.merge(df2,indicator = True, how='left').loc[lambda x : x['_merge']!='both']
Nach dem Login kopieren

Durch die Implementierung dieser Techniken können Sie den Unterschied zwischen zwei Datenrahmen effizient bestimmen und so sicherstellen Sie haben einen Datenrahmen, der nur die eindeutigen Informationen aus jedem Datenrahmen enthält.

Das obige ist der detaillierte Inhalt vonWie kann man den Unterschied zwischen zwei Pandas-DataFrames effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage