Panda's: draaitabel sorteren op waarden in kolom
U kunt de volgende basissyntaxis gebruiken om een Panda-draaitabel te sorteren op basis van de waarden van een kolom:
my_pivot_table. sort_values (by=[' some_column '], ascending= False )
In dit specifieke voorbeeld worden de waarden van een draaitabel met de naam my_pivot_table gesorteerd op basis van de waarden van een_kolom in aflopende volgorde.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Sorteer de draaitabel van Panda’s op waarden in de kolom
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over verschillende basketbalspelers:
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
We kunnen de volgende code gebruiken om een draaitabel in panda’s te maken die de som van de waarden in de punten- en hulpkolommen voor elk team weergeeft:
#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
Standaard sorteert Panda de draaitabelrijen alfabetisch op basis van de waarde van de indexkolom, die toevallig de teamkolom is.
We kunnen echter de functie sort_values() gebruiken om de draaitabelrijen te sorteren op basis van de puntkolomwaarden :
#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
Houd er rekening mee dat de draaitabelrijen nu worden gesorteerd op basis van de waarden in de kolom Punten .
Houd er rekening mee dat als u het argument oplopend=False weglaat, de rijen in oplopende volgorde worden gesorteerd op de waarden in de puntkolom :
#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
Houd er rekening mee dat de draaitabelrijen nu worden gesorteerd op de puntkolomwaarden in oplopende volgorde (van klein naar groot).
Opmerking #1: Je kunt ook op meerdere kolommen in de draaitabel sorteren door meerdere waarden door te geven aan het argument by in de functie sort_values() .
Opmerking #2 : Je kunt de volledige documentatie van de pandas pivot_table() functie hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Panda’s: hoe u het DataFrame kunt hervormen van lang naar breed
Panda’s: hoe u het DataFrame kunt hervormen van breed naar lang
Panda’s: hoe te groeperen en aggregeren over meerdere kolommen