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

Einen Kommentar hinzufügen

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