Heim >Backend-Entwicklung >Python-Tutorial >Wie identifiziere ich Zeilen, die in df2 vorhanden, aber in df1 nicht vorhanden sind?
Der Vergleich von Datenrahmen zur Identifizierung von Unterschieden ist für die Datenanalyse unerlässlich. Bei diesem Problem erhalten wir zwei Datenrahmen, df1 und df2, und müssen Zeilen finden, die in df2 vorhanden, aber in df1 nicht vorhanden sind.
Direkter Vergleich mit Operatoren wie != kann zu Fehlern führen, wenn die Datenrahmen unterschiedliche Strukturen haben. Ein besserer Ansatz besteht darin, die Datenrahmen zu verketten, ihre Indizes zurückzusetzen und sie dann zu vergleichen. Die Verwendung von df1 == df2 führt zu einer booleschen Matrix, in der „True“ die in beiden Datenrahmen vorhandenen Zeilen und „False“ Unterschiede angibt.
Als nächstes können wir eine Gruppierungsoperation durchführen auf dem verketteten Datenrahmen, um eindeutige Zeilen zu identifizieren. Das Ziel besteht darin, Zeilen zu finden, die nur einmal im Datenrahmen vorkommen. Dies können wir erreichen, indem wir die Länge der Gruppen überprüfen; Zeilen mit einer Länge von 1 stellen eindeutige Datensätze dar.
Schließlich können wir die identifizierten eindeutigen Zeilenindizes verwenden, um den Datenrahmen zu filtern. Dadurch erhalten wir die Zeilen in df2, die in df1 nicht vorhanden sind.
Zum Beispiel unter Berücksichtigung der bereitgestellten Beispieldatenrahmen:
<code class="python">import pandas as pd df1 = ... df2 = ... # Concatenate dataframes df = pd.concat([df1, df2]) df = df.reset_index(drop=True) # Group by unique values df_gpby = df.groupby(list(df.columns)) # Get unique row indices idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1] # Filter dataframe result = df.reindex(idx)</code>
Der Ergebnisdatenrahmen enthält die Zeilen in df2, die in df1 nicht vorhanden sind.
Das obige ist der detaillierte Inhalt vonWie identifiziere ich Zeilen, die in df2 vorhanden, aber in df1 nicht vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!