Beim Versuch, eine neue Spalte basierend auf der Summierung eines Werts zu erstellen Gruppiert nach Datum mit der Funktion „groupby()“ von Pandas, werden NaN-Ergebnisse gefunden. Das Ziel besteht darin, eine Spalte hinzuzufügen, die die Gesamtsumme eines bestimmten Werts für alle Daten anzeigt, unabhängig von der Anzahl der Zeilen, die diesem Datum zugeordnet sind.
Um dies zu erreichen, muss die Transformation durchgeführt werden ()-Funktion wird verwendet. Im Gegensatz zur Funktion apply(), die Zeile für Zeile arbeitet, führt transform() Berechnungen für gruppierte Daten durch und gibt eine Reihe zurück, die am ursprünglichen Datenrahmen ausgerichtet ist.
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Hier finden Sie eine schrittweise Aufschlüsselung :
Betrachten Sie den folgenden Datenrahmen:
Date Sym Data2 Data3 0 2015-05-08 aapl 11 5 1 2015-05-07 aapl 8 8 2 2015-05-06 aapl 10 6 3 2015-05-05 aapl 15 1 4 2015-05-08 aaww 110 50 5 2015-05-07 aaww 60 100 6 2015-05-06 aaww 100 60 7 2015-05-05 aaww 40 120
Anwenden der transform()-Funktion:
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Ergebnisse in:
Date Sym Data2 Data3 Data4 0 2015-05-08 aapl 11 5 55 1 2015-05-07 aapl 8 8 108 2 2015-05-06 aapl 10 6 66 3 2015-05-05 aapl 15 1 121 4 2015-05-08 aaww 110 50 55 5 2015-05-07 aaww 60 100 108 6 2015-05-06 aaww 100 60 66 7 2015-05-05 aaww 40 120 121
As Aus der Ausgabe geht hervor, dass die Spalte „Data4“ jetzt die Summe von „Data3“ für jedes eindeutige „Datum“ enthält. Wert.
Das obige ist der detaillierte Inhalt vonWie füge ich mit „transform()' eine neue Spalte mit gruppierter Summierung in Pandas hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!