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

Einen Kommentar hinzufügen

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