Datenrahmenunterschiede effektiv vergleichen und anzeigen
Einführung
Die Unterschiede zwischen zwei identifizieren und verstehen Datenrahmen sind eine häufige Aufgabe in der Datenanalyse. Ganz gleich, ob es darum geht, historische Daten mit aktuellen Trends zu vergleichen oder Änderungen in einer Datenbank zu verfolgen, die Fähigkeit, diese Änderungen genau hervorzuheben, ist entscheidend.
Problemstellung
Angenommen, wir haben zwei Datenrahmen Enthält Informationen zum Studentenverzeichnis aus zwei verschiedenen Monaten: „StudentRoster Jan-1“ und „StudentRoster Jan-2“. Unser Ziel ist es, eine HTML-Tabelle zu erstellen, die die Änderungen zwischen diesen beiden Datenrahmen deutlich anzeigt und sowohl neue als auch alte Werte für jede Zeile anzeigt.
Lösung
Identifizieren geänderter Zeilen
Der erste Schritt besteht darin, festzustellen, welche Zeilen sich tatsächlich geändert haben. Wir können die Funktion any() verwenden, um jede Zeile auf Unterschiede zu überprüfen:
<code class="python">import pandas as pd import numpy as np ne = (df1 != df2).any(1)</code>
Dies gibt eine boolesche Reihe zurück, wobei „True“ eine geänderte Zeile angibt.
Geänderte Werte extrahieren
Als nächstes müssen wir die tatsächlich geänderten Werte extrahieren. Wir verwenden die Methode .stack(), um den Datenrahmen in eine einzelne Spalte umzuwandeln, und filtern dann diese Spalte nach den geänderten Werten:
<code class="python">ne_stacked = (df1 != df2).stack() changed = ne_stacked[ne_stacked] changed.index.names = ['id', 'col']</code>
Dadurch erhalten wir den Index und die Spaltennamen der geänderten Werte.
Vorherige und neue Werte extrahieren
Mithilfe des Index aus den geänderten Werten können wir die vorherigen und neuen Werte für jeden geänderten Eintrag extrahieren:
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
Erstellen der HTML-Tabelle
Schließlich können wir die HTML-Tabelle erstellen, indem wir die extrahierten Werte kombinieren:
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)</code>
Dieser Datenrahmen enthält zwei Spalten: „von“ und „bis“, die die ursprünglichen und neuen Werte für jeden geänderten Eintrag anzeigen. Der Index des Datenrahmens identifiziert die Zeile und Spalte, in der die Änderung aufgetreten ist.
Durch die Anzeige der geänderten Werte und ihrer vorherigen und neuen Werte nebeneinander bietet diese HTML-Tabelle einen klaren und umfassenden Überblick über die Änderungen zwischen den beiden Datenrahmen.
Das obige ist der detaillierte Inhalt vonSo vergleichen und zeigen Sie Datenrahmenunterschiede effektiv mit Python an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!