Wie vergleiche ich zwei Datenrahmen und extrahiere Unterschiede basierend auf bestimmten Spalten?

Patricia Arquette
Freigeben: 2024-10-19 21:14:02
Original
346 Leute haben es durchsucht

How to Compare Two Dataframes and Extract Differences Based on Specific Columns?

Zwei Datenrahmen vergleichen und Unterschiede identifizieren

In Ihrem Szenario haben Sie zwei Datenrahmen, df1 und df2, mit identischen Strukturen und Zeilenindizes. Ihr Ziel besteht darin, durch Vergleich ihrer Datums- und Fruchtwerte festzustellen, welche Zeilen in df2, aber nicht in df1 vorhanden sind.

Direkter Vergleich

Der Ansatz der Verwendung von df1 != df2 ist nicht geeignet, da identisch beschriftete Datenrahmen erforderlich sind. Auch das Entfernen des Datumsindex löst das Problem nicht.

Verkettung und Gruppierung

Um die Unterschiede zu finden, können Sie die Datenrahmen zu einem einzigen Datenrahmen df verketten:

<code class="python">import pandas as pd

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)</code>
Nach dem Login kopieren

Gruppieren Sie df nach allen seinen Spalten, um eindeutige Datensätze zu identifizieren:

<code class="python">df_gpby = df.groupby(list(df.columns))</code>
Nach dem Login kopieren

Eindeutige Datensätze filtern

Als nächstes rufen Sie die Indizes eindeutiger Datensätze ab , das sind diejenigen mit einer Gruppengröße von 1:

<code class="python">idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]</code>
Nach dem Login kopieren

Schließlich können Sie diese Indizes verwenden, um den verketteten Datenrahmen zu filtern, um nur die Zeilen zu erhalten, die exklusiv für df2:

<code class="python">df.reindex(idx)</code>
Nach dem Login kopieren
Dadurch wird ein Datenrahmen zurückgegeben, der die gewünschten Unterschiede enthält:

Das obige ist der detaillierte Inhalt vonWie vergleiche ich zwei Datenrahmen und extrahiere Unterschiede basierend auf bestimmten Spalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!