Gruppierte Unterschiede in Pandas mit mehreren Feldern
In dieser Situation wollen wir die Unterschiede in den Bewertungen für verschiedene Standort- und Länderkombinationen berechnen Zeit.
Um dies zu erreichen, sortieren wir zunächst den Datenrahmen nach Standort, Land und Datum:
<code class="python">df = df.sort_values(by=['site', 'country', 'date'])</code>
Als nächstes verwenden wir Groupby und Diff, um die Unterschiede innerhalb der einzelnen Standorte zu berechnen und Ländergruppe:
<code class="python">df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)</code>
Dies erzeugt Unterschiede innerhalb jeder Site und Ländergruppe und füllt alle fehlenden Werte mit 0.
Abschließend zeigen wir die Ergebnisse an:
<code class="python">print(df) Output: date site country score diff 8 2018-01-01 fb es 100 0.0 9 2018-01-02 fb gb 100 0.0 5 2018-01-01 fb us 50 0.0 6 2018-01-02 fb us 55 5.0 7 2018-01-03 fb us 100 45.0 1 2018-01-01 google ch 50 0.0 4 2018-01-02 google ch 10 -40.0 0 2018-01-01 google us 100 0.0 2 2018-01-02 google us 70 -30.0 3 2018-01-03 google us 60 -10.0</code>
Bitte beachten Sie, dass das Sortieren nach willkürlicher Reihenfolge nicht direkt unterstützt wird. Erwägen Sie für solche Szenarien, Ihre Bestellung in einer Sammlung zu speichern und Ihre Spalte kategorisch zu gestalten. Auf diese Weise werden sort_values an der angegebenen Reihenfolge ausgerichtet.
Das obige ist der detaillierte Inhalt vonWie berechnet man gruppierte Unterschiede in Pandas mit mehreren Feldern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!