Heim >Backend-Entwicklung >Python-Tutorial >Wie vermeide ich NaN-Werte beim Hinzufügen von pandas groupby().sum()-Ergebnissen zu einer neuen Spalte?
So füllen Sie eine neue Spalte mit der Ausgabe von pandas groupby().sum()
Bei der Arbeit mit Daten kann dies der Fall sein nützlich, um eine neue Spalte in einem DataFrame basierend auf den Ergebnissen einer bestimmten Berechnung zu erstellen. Eine solche Berechnung besteht darin, die Funktionen „groupby()“ und „sum()“ in Pandas zu verwenden, um die Summe der Werte für eine bestimmte Gruppe in einer Spalte zu ermitteln. Wenn Sie jedoch versuchen, eine neue Spalte mit dieser Summe zu erstellen, können NaN-Werte auftreten.
Beachten Sie den folgenden Code:
df = pd.DataFrame({ 'Date' : ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym' : ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40], 'Data3': [5, 8, 6, 1, 50, 100, 60, 120] }) group = df['Data3'].groupby(df['Date']).sum() df['Data4'] = group
Wenn Sie diesen Code ausführen, können Sie Folgendes erwarten: die korrekten berechneten Werte für jedes Datum (wie in der Gruppenvariablen angezeigt), stattdessen erhalten Sie NaN-Werte in der neu erstellten Spalte „Data4“.
Um dieses Problem zu beheben, müssen Sie Folgendes tun Verwenden Sie die Transformationsfunktion. Diese Funktion gibt eine Reihe zurück, deren Index am DataFrame ausgerichtet ist, sodass Sie sie als neue Spalte hinzufügen können. Hier ist der korrigierte Code:
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Mit dieser Änderung erstellen Sie erfolgreich eine neue Data4-Spalte mit den gewünschten summierten Werten.
Das obige ist der detaillierte Inhalt vonWie vermeide ich NaN-Werte beim Hinzufügen von pandas groupby().sum()-Ergebnissen zu einer neuen Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!