Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet man zeitbasierte Unterschiede in Pandas-DataFrames mithilfe von Groupby und diff()?
Pandas gruppiert mehrere Felder für zeitbasierte Unterschiede
Im Bereich der Datenanalyse ist der Vergleich von Änderungen im Zeitverlauf eine entscheidende Aufgabe. Pandas, eine vielseitige Python-Bibliothek, bietet robuste Funktionen für die Abwicklung solcher Vorgänge. Beim Umgang mit Daten, die nach mehreren kategorialen Feldern und nach Zeit organisiert sind, erweist sich die Methode groupby.diff() als unschätzbar wertvoll.
Betrachten Sie einen DataFrame wie den bereitgestellten, bei dem jede Site je nach Land und Datum unterschiedliche Bewertungen aufweist. Das Ziel besteht darin, die 1/3/5-Tage-Differenz in den Bewertungen für jede Kombination aus Standort und Land zu berechnen.
Problemlösung
Um dies zu erreichen, nutzen wir die Folgende Schritte:
<code class="python">df = df.sort_values(by=['site', 'country', 'date']) df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)</code>
Ausgabe:
Das Ergebnis ist ein DataFrame, der die berechneten Bewertungsunterschiede anzeigt:
date | site | country | score | diff |
---|---|---|---|---|
2018-01-01 | fb | es | 100 | 0.0 |
2018-01-02 | fb | gb | 100 | 0.0 |
2018-01-01 | fb | us | 50 | 0.0 |
2018-01-02 | fb | us | 55 | 5.0 |
2018-01-03 | fb | us | 100 | 45.0 |
2018-01-01 | ch | 50 | 0.0 | |
2018-01-02 | ch | 10 | -40.0 | |
2018-01-01 | us | 100 | 0.0 | |
2018-01-02 | us | 70 | -30.0 | |
2018-01-03 | us | 60 | -10.0 |
Erweiterte Sortierung
In Fällen, in denen eine willkürliche Reihenfolge erforderlich ist, z. B. die Priorisierung von „google“ gegenüber „fb“, kann eine kategoriale Spalte erstellt und als Sortierparameter zugewiesen werden. Dadurch wird sichergestellt, dass die vorgegebene Reihenfolge eingehalten wird.
Das obige ist der detaillierte Inhalt vonWie berechnet man zeitbasierte Unterschiede in Pandas-DataFrames mithilfe von Groupby und diff()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!