Pandas: so sortieren sie eine pivot-tabelle nach spaltenwerten
Sie können die folgende grundlegende Syntax verwenden, um eine Pandas-Pivot-Tabelle basierend auf den Werten einer Spalte zu sortieren:
my_pivot_table. sort_values (by=[' some_column '], ascending= False )
In diesem speziellen Beispiel werden die Werte einer Pivot-Tabelle namens my_pivot_table basierend auf den Werten von some_column in absteigender Reihenfolge sortiert.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Sortieren Sie die Pandas-Pivot-Tabelle nach Werten in der Spalte
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 Punkte- und Assist- Spalten für jedes Team anzeigt:
#create pivot table
df_pivot = df. pivot_table (index=[' team '], values=[' points ', ' assists '], aggfunc=' sum ')
#view pivot table
print (df_pivot)
assist points
team
At 14 18
B 19 26
C 25 23
Standardmäßig sortiert Pandas die Zeilen der Pivot-Tabelle alphabetisch basierend auf dem Wert der Indexspalte, die zufällig die Teamspalte ist.
Wir können jedoch die Funktion sort_values() verwenden, um die Pivot-Tabellenzeilen basierend auf den Punktspaltenwerten zu sortieren:
#sort pivot table by value in 'points' column in descending order
sorted_df_pivot = df_pivot. sort_values (by=[' points '], ascending= False )
#view sorted pivot table
print (sorted_df_pivot)
assist points
team
B 19 26
C 25 23
At 14 18
Beachten Sie, dass die PivotTable-Zeilen jetzt basierend auf den Werten in der Spalte „Punkte“ sortiert werden.
Beachten Sie, dass die Zeilen nach den Werten in der Punktspalte in aufsteigender Reihenfolge sortiert werden, wenn Sie das Argument „ascinging=False“ weglassen:
#sort pivot table by value in 'points' column in ascending order
sorted_df_pivot = df_pivot. sort_values (by=[' points '])
#view sorted pivot table
print (sorted_df_pivot)
assist points
team
At 14 18
C 25 23
B 19 26
Beachten Sie, dass die PivotTable-Zeilen jetzt nach den Punktspaltenwerten in aufsteigender Reihenfolge (vom kleinsten zum größten) sortiert sind.
Hinweis Nr. 1: Sie können in der Pivot-Tabelle auch nach mehreren Spalten sortieren, indem Sie in der Funktion sort_values() mehrere Werte an das Argument by übergeben.
Hinweis Nr. 2 : 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 formen Sie den DataFrame von lang zu breit um
Pandas: So formen Sie den DataFrame von breit nach lang um
Pandas: So gruppieren und aggregieren Sie über mehrere Spalten hinweg