Pandas: so entfernen sie multiindex in einer pivot-tabelle
Um einen MultiIndex aus einer Pandas-Pivot-Tabelle zu entfernen, können Sie das Argument „ values“ mit der Funktion „reset_index()“ verwenden:
p.d. pivot_table (df, index=' col1 ', columns=' col2 ', values=' col3 '). reset_index ()
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: MultiIndex in Pandas PivotTable entfernen
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'], ' points ': [4, 4, 6, 8, 9, 5, 5, 12]}) #view DataFrame print (df) team position points 0 AG 4 1 GA 4 2 AF 6 3AF 8 4 BG 9 5 BF 5 6 BF 5 7 BF 12
Nehmen wir nun an, wir erstellen die folgende Pivot-Tabelle, um den durchschnittlichen Punktwert nach Team und Position zusammenzufassen:
#create pivot table to summarize mean points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ')
points
FG position
team
At 7.000000 4.0
B 7.333333 9.0
Die resultierende Pivot-Tabelle fasst den durchschnittlichen Punktwert nach Team und Position zusammen, enthält jedoch einen MultiIndex.
Um den MultiIndex zu entfernen, können wir das Argument „ values“ in der Funktion „pivot_table()“ verwenden und am Ende „reset_index()“ hinzufügen:
#create pivot table to summarize mean points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ', values=' points '). reset_index ()
position team F G
0 to 7.000000 4.0
1 B 7.333333 9.0
Die resultierende Pivot-Tabelle fasst den durchschnittlichen Punktwert nach Team und Position zusammen und verfügt nicht mehr über einen MultiIndex.
Beachten Sie, dass die Funktion „pivot_table()“ standardmäßig den Durchschnittswert berechnet.
Um eine andere Metrik, wie z. B. die Summe, zu berechnen, verwenden Sie das Argument aggfunc wie folgt:
#create pivot table to summarize sum of points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ', values=' points ',
aggfunc=' sum '). reset_index ()
position team FG
0 to 14 8
1 B 22 9
Die resultierende Pivot-Tabelle fasst die Summe der Punktwerte nach Team und Position zusammen und verfügt zudem über keinen MultiIndex.
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 fügen Sie einen Filter zur Pivot-Tabelle hinzu
Pandas: So sortieren Sie eine Pivot-Tabelle nach Spaltenwerten
Pandas: So fügen Sie Zwischensummen zur Pivot-Tabelle hinzu