Pandas gruppiert nach mehreren Feldern mit Differenzberechnung
Bei der Programmierung ist die Manipulation von Daten von entscheidender Bedeutung, und Pandas ist eine leistungsstarke Bibliothek zur Ausführung dieser Aufgaben effizient. Eine häufig gestellte Frage ist, wie man Daten nach mehreren Feldern gruppiert und Unterschiede berechnet. Lassen Sie uns untersuchen, wie wir dies erreichen können.
Problem:
Betrachten Sie einen DataFrame mit der folgenden Struktur:
date site country score 0 2018-01-01 google us 100 1 2018-01-01 google ch 50 2 2018-01-02 google us 70 3 2018-01-03 google us 60 ...
Das Ziel besteht darin, das zu finden 1/3/5-Tage-Unterschied in den Bewertungen für jede „Standort/Land“-Kombination.
Lösung:
Um dieses Problem zu lösen, können wir das Groupby von Pandas verwenden und Diff-Funktionen:
df = df.sort_values(by=['site', 'country', 'date'])
Durch die Sortierung wird sichergestellt, dass unsere Daten für die richtige Gruppierung und Differenzberechnung organisiert sind.
df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)
Diese Zeile gruppiert den DataFrame mithilfe von Groupby nach den Spalten „Site“ und „Country“. Anschließend wird mithilfe von diff die Differenz zwischen den einzelnen aufeinanderfolgenden Werten innerhalb jeder Gruppe berechnet. Das Ergebnis wird in einer neuen Spalte namens „diff“ gespeichert. Alle fehlenden Werte werden mithilfe von fillna(0) durch 0 ersetzt.
Ausgabe:
Der resultierende DataFrame enthält die ursprünglichen Spalten zusammen mit der Spalte „diff“:
date site country score diff 0 2018-01-01 fb es 100 0.0 1 2018-01-02 fb gb 100 0.0 ...
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie berechnet man den Unterschied in den Bewertungen für mehrere Felder in einem Pandas-DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!