Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet man zeitbasierte Unterschiede in Pandas-DataFrames mithilfe von Groupby und diff()?

Wie berechnet man zeitbasierte Unterschiede in Pandas-DataFrames mithilfe von Groupby und diff()?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 07:45:27524Durchsuche

How to Calculate Time-Based Differences in Pandas DataFrames Using Groupby and 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:

  1. Sortieren des DataFrame: Ordnen Sie die Daten mit sort_values() in einer konsistenten Reihenfolge nach Standort, Land und Datum an.
  2. Gruppierung nach Standort und Land: Nutzen Sie groupby(), um Gruppen basierend auf den Standort- und Länderfeldern zu erstellen.
  3. Berechnen von Unterschieden: Wenden Sie diff() innerhalb jeder Gruppe an, um die Punktzahl zu berechnen Differenz für aufeinanderfolgende Zeilen.
<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 google ch 50 0.0
2018-01-02 google ch 10 -40.0
2018-01-01 google us 100 0.0
2018-01-02 google us 70 -30.0
2018-01-03 google 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!

Stellungnahme:
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