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

Einen Kommentar hinzufügen

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