Pandas: so fügen sie einen filter zur pivot-tabelle hinzu
Sie können die folgende grundlegende Syntax verwenden, um einer Pandas-Pivot-Tabelle eine Filterbedingung hinzuzufügen:
df[df. col1 == ' A ']. pivot_table (index=' col1 ', values=[' col2 ', ' col3 '], aggfunc=' sum ')
In diesem speziellen Beispiel wird eine Pivot-Tabelle erstellt, die die Summe der Werte von col2 und col3 , gruppiert nach col1 , anzeigt.
Der Filter vor der Funktion „pivot_table()“ gibt an, dass wir nur Zeilen einschließen möchten, in denen der Wert in Spalte 1 des ursprünglichen DataFrame den Wert „A“ hat.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: So fügen Sie einen Filter zur Pandas-Pivot-Tabelle hinzu
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 in Pandas eine Pivot-Tabelle erstellen, die die Summe der Werte in den nach Team gruppierten Punkte- und Assist- Spalten nur für Zeilen anzeigt, in denen der ursprüngliche DataFrame einen Wert in der Score-Spalte hat. Team gleich „A“:
#create pivot table for rows where team is equal to 'A'
df[df. team == ' A ']. pivot_table (index=' team ', values=[' points ', ' assists '],
aggfunc=' sum ')
assist points
team
At 14 18
Beachten Sie, dass die Pivot-Tabelle nur die Werte der Punkte- und Unterstützungsspalten für Zeilen zusammenfasst, in denen Team gleich „A“ ist.
Sie können auch die Operatoren & und | verwenden um einen Filter anzuwenden, der „AND“- oder „OR“-Logik verwendet.
Beispielsweise können wir die folgende Syntax verwenden, um eine Pivot-Tabelle zu erstellen, die Zeilen filtert, bei denen der Wert in der Teamspalte des ursprünglichen DataFrame „A“ oder „B“ entspricht:
#create pivot table for rows where team is equal to 'A' or 'B'
df[( df.team == ' A ') | (df. team == ' B ')]. pivot_table (index=' team ',
values=[' points ', ' assists '],
aggfunc=' sum ')
assist points
team
At 14 18
B 19 26
Beachten Sie, dass die Pivot-Tabelle nur die Werte in den Punkte- und Unterstützungsspalten für Zeilen zusammenfasst, in denen Team gleich „A“ oder „B“ ist.
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 Aufgaben in Pandas 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