Pandas: so fügen sie zwischensummen zur pivot-tabelle hinzu


Häufig möchten Sie möglicherweise Zwischensummen zu einer Pandas-Pivot-Tabelle hinzufügen.

Glücklicherweise ist dies mit den integrierten Funktionen von Pandas einfach zu bewerkstelligen.

Das folgende Beispiel zeigt, wie das geht.

Beispiel: Zwischensummen zur Pandas PivotTable hinzufügen

Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über verschiedene Basketballspieler enthält:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
                   ' all_star ': ['Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y'],
                   ' points ': [4, 4, 6, 8, 9, 5, 5, 12]})

#view DataFrame
print (df)

  team position all_star points
0 AGY 4
1 AGN 4
2 AFY 6
3 AFY 8
4 BGN 9
5 BFN 5
6 BFN 5
7 BFY 12

Mit dem folgenden Code können wir in Pandas eine Pivot-Tabelle erstellen, die die Summe der Punkte für jede Kombination aus team , all_star und position im DataFrame anzeigt:

 #create pivot table
my_table = pd. pivot_table (df, values=' points ',
                              index=[' team ', ' all_star '],
                              columns=' position ',
                              aggfunc=' sum ')

#view pivot table
print (my_table)

FG position
team all_star           
AN NaN 4.0
     Y 14.0 4.0
BN 10.0 9.0
     Y 12.0 NaN

Nehmen wir nun an, wir möchten eine Zwischensummenzeile hinzufügen, in der die Zwischensummenpunkte für jedes Team und jede Position angezeigt werden.

Wir können dazu die folgende Syntax verwenden:

 #add subtotals row to pivot table
p.d. concat ([
    y. append ( y.sum (). rename ((x, ' Total ')))
    for x, y in my_table. groupby (level= 0 )
]). append ( my_table.sum (). rename ((' Large ', ' Total ')))

	position F G
team all_star		
A N NaN 4.0
               Y 7.0 4.0
           Overall 7.0 8.0
B N 5.0 9.0
               Y 12.0 NaN
           Total 17.0 9.0
Grand Total 24.0 17.0

Wir haben jetzt zwei Zwischensummenzeilen, die die Zwischensummenpunkte für jedes Team und jede Position anzeigen, sowie eine Gesamtsummenzeile, die die Gesamtsumme für jede Spalte anzeigt.

Hinweis : Die vollständige Dokumentation der Pandas- Pivot_table() -Funktion finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

Pandas: So erstellen Sie eine Pivot-Tabelle mit der Anzahl der Werte
Pandas: So ersetzen Sie NaN-Werte in der Pivot-Tabelle durch Nullen
Pandas: So konvertieren Sie PivotTable in DataFrame

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert