Pandas: erstellen sie eine pivot-tabelle mit mehreren aggfunc


Sie können die folgende Syntax verwenden, um eine Pivot-Tabelle in Pandas zu erstellen und dem Argument aggfunc mehrere Werte bereitzustellen:

 df. pivot_table (index=' col1 ', values=' col2 ', aggfunc=(' sum ', ' mean '))

In diesem speziellen Beispiel wird eine Pivot-Tabelle erstellt, die die Summe und den Durchschnitt der Werte in col2 anzeigt, gruppiert nach col1 .

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Erstellen Sie eine Pandas-Pivot-Tabelle mit mehreren Aggfunc

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', 'C', 'C', 'C', 'C'],
                   ' points ': [4, 4, 2, 8, 9, 5, 5, 7, 8, 8, 4, 3],
                   ' assists ': [2, 2, 5, 5, 4, 7, 5, 3, 9, 8, 4, 4]})

#view DataFrame
print (df)

   team points assists
0 to 4 2
1 to 4 2
2 to 2 5
3 to 8 5
4 B 9 4
5 B 5 7
6 B 5 5
7 B 7 3
8 C 8 9
9 C 8 8
10 C 4 4
11 C 3 4

Mit dem folgenden Code können wir eine Pivot-Tabelle erstellen, die sowohl die Summe als auch die durchschnittliche Anzahl der von jedem Team erzielten Punkte zusammenfasst:

 #create pivot table to summarize sum and mean of points by team
df. pivot_table (index=' team ', values=' points ', aggfunc=(' sum ', ' mean '))

	mean sum
team		
At 4.50 18
B 6.50 26
C 5.75 23

Die resultierende Pivot-Tabelle fasst den Durchschnitt und die Summe der von jedem Team erzielten Punkte zusammen.

Wir können zum Beispiel sehen:

  • Die Spieler von Team A hatten einen durchschnittlichen Punktwert von 4,50 und einen Gesamtpunktwert von 18 .
  • Die Spieler von Team B hatten einen durchschnittlichen Punktwert von 6,50 und einen Gesamtpunktwert von 26 .
  • Die Spieler von Team C hatten einen durchschnittlichen Punktwert von 5,75 und einen Gesamtpunktwert von 23 .

Beachten Sie, dass wir in diesem Beispiel anhand von Summe und Durchschnitt aggregiert haben, wir könnten aber auch anhand anderer Metriken aggregieren, wie zum Beispiel:

  • zählen
  • Mindest
  • maximal
  • Median
  • std (Standardabweichung)

Das folgende Beispiel zeigt, wie die Punktespaltenwerte basierend auf diesen Metriken für jedes Team aggregiert werden:

 #create pivot table to summarize several metrics for points by team
df. pivot_table (index=' team ', values=' points ',
               aggfunc=(' count ', ' min ', ' max ', ' median ', ' std '))

        count max median min std
team					
A 4 8 4.0 2 2.516611
B 4 9 6.0 5 1.914854
C 4 8 6.0 3 2.629956

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

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Panda-Aufgaben ausführen:

Pandas: So sortieren Sie eine Pivot-Tabelle nach Spaltenwerten
Pandas: So erstellen Sie eine Pivot-Tabelle mit einer Summe von Werten
Pandas: So fügen Sie Zwischensummen zur Pivot-Tabelle hinzu
Pandas: So ändern Sie Spaltennamen in einer Pivot-Tabelle

Einen Kommentar hinzufügen

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