Pandas: so erstellen sie eine pivottable mit prozentsätzen


Sie können die folgende Syntax verwenden, um einer Pivot-Tabelle in Pandas eine Spalte hinzuzufügen, die den Prozentsatz der Gesamtsumme für eine bestimmte Spalte anzeigt:

 my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

Diese spezielle Syntax fügt einer Pivot-Tabelle namens my_table eine neue Spalte namens % Punkte hinzu, die den Prozentsatz der Gesamtwerte in der Punktespalte anzeigt.

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

Beispiel: Erstellen Sie eine Pandas-PivotTable mit Prozentsätzen

Angenommen, wir haben den folgenden Pandas-DataFrame, der die Anzahl der von verschiedenen Basketballspielern erzielten Punkte anzeigt:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [22, 30, 14, 15, 19, 30, 23, 20]})

#view DataFrame
print (df)

  team position points
0 A Guard 22
1A Guard 30
2 A Forward 14
3 A Forward 15
4 B Guard 19
5 B Guard 30
6 B Forward 23
7 B Forward 20

Mit der Funktion „pivot_table()“ können wir eine Pivot-Tabelle erstellen, die die Summe der Punkte nach Team und Position anzeigt:

 #create pivot table to calculate sum of points by team and position
my_table = pd. pivot_table (df, index=[' team ', ' position '], aggfunc=' sum ')

#view pivot table
print (my_table)

               points
team position        
A Forward 29
     Guard 52
B Forward 43
     Guard 49

Aus dem Ergebnis können wir sehen:

  • Die Angreifer von Team A erzielten insgesamt 29 Punkte.
  • Die Guards von Team A erzielten insgesamt 52 Punkte.
  • Die Angreifer von Team B erzielten insgesamt 43 Punkte.
  • Die Wachen von Team B erzielten insgesamt 49 Punkte.

Anschließend können wir mit der folgenden Syntax eine neue Spalte namens % Punkte hinzufügen, die den Prozentsatz der Gesamtpunktzahl für jede Zeile anzeigt:

 #add column that displays points as a percentage of total points
my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

#view updated pivot table
print (my_table)

               points % points
team position                   
A Forward 29 16.763006
     Guard 52 30.057803
B Forward 43 24.855491
     Guard 49 28.323699

Die neue Spalte „% Punkte“ zeigt jetzt Punktwerte als Prozentsatz der Gesamtpunktzahl an.

Beachten Sie außerdem, dass Sie mit der Funktion „round()“ Prozentwerte auf eine bestimmte Anzahl von Dezimalstellen runden können.

 #add column that displays points as a percentage of total points (rounded)
my_table[' % points '] = round ((my_table[' points ']/my_table[' points ']. sum ())* 100 , 2 )

#view updated pivot table
print (my_table)

               points % points
team position                  
A Forward 29 16.76
     Guard 52 30.06
B Forward 43 24.86
     Guard 49 28.32

Prozentwerte werden jetzt auf zwei Dezimalstellen gerundet.

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 erstellen Sie eine Pivot-Tabelle mit einer Summe von Werten

Einen Kommentar hinzufügen

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