Heim > Backend-Entwicklung > Python-Tutorial > Wie identifiziere ich Zeilen, die in einem Pandas-DataFrame vorhanden sind, in einem anderen jedoch fehlen?

Wie identifiziere ich Zeilen, die in einem Pandas-DataFrame vorhanden sind, in einem anderen jedoch fehlen?

DDD
Freigeben: 2024-12-14 08:20:15
Original
326 Leute haben es durchsucht

How to Identify Rows Present in One Pandas DataFrame but Absent in Another?

Identifizieren unterschiedlicher Zeilen zwischen Datenrahmen

Problemstellung

Gegeben zwei Pandas-Datenrahmen (df1 und df2) mit sich überschneidenden Zeilen, besteht die Aufgabe darin, diese zu isolieren Zeilen in df1, die in fehlen df2.

Lösung

Um dieses Problem zu lösen, können wir einen Links-Join von df1 nach df2 durchführen und dabei sicherstellen, dass wir Duplikate in df2 eliminieren, um sicherzustellen, dass jede Zeile von df1 mit nur einer Zeile verknüpft wird df2.

df_all = df1.merge(df2.drop_duplicates(), on=['col1', 'col2'], how='left', indicator=True)
Nach dem Login kopieren

Dieser Left-Join erstellt eine zusätzliche Spalte _merge, die den Ursprung jeder Spalte angibt Zeile.

Um nach Zeilen zu filtern, die ausschließlich für df1 gelten, wenden wir eine boolesche Bedingung an:

df_filtered = df_all[df_all['_merge'] == 'left_only']
Nach dem Login kopieren

Falsche Lösungen

Einige Lösungen überprüfen fehlerhaft jeden Wert in jeder Spalte unabhängig anstatt die zeilenweise Präsenz zu berücksichtigen. Beispielsweise gibt diese Lösung:

(~df1.col1.isin(common.col1)) & (~df1.col2.isin(common.col2))
Nach dem Login kopieren

ein falsches Ergebnis zurück, da die Zeile mit den Werten [3, 10] nicht erfasst werden kann, was gemeinsam fehlt:

0    False
1    False
2    False
3     True
4     True
5    False
dtype: bool
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie identifiziere ich Zeilen, die in einem Pandas-DataFrame vorhanden sind, in einem anderen jedoch fehlen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage