Panda's: hoe de rangschikking in een groupby-object te berekenen
U kunt de volgende syntaxis gebruiken om de volgorde van waarden in een GroupBy-object in panda’s te berekenen:
df[' rank '] = df. groupby ([' group_var '])[' value_var ']. rank ()
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: het berekenen van de rangschikking in een GroupBy-object
Stel dat we het volgende panda’s DataFrame hebben dat de punten weergeeft die zijn gescoord door basketbalspelers van verschillende teams:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})
#view DataFrame
print (df)
team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26
We kunnen de volgende syntaxis gebruiken om de rangschikking van puntwaarden voor elk team te berekenen:
#add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank ()
#view updated DataFrame
print (df)
team points points_rank
0 to 10 1.5
1 to 10 1.5
2 to 12 3.0
3 to 15 4.0
4 B 19 1.0
5 B 23 2.0
6 C 20 1.5
7 C 20 1.5
8 C 26 3.0
Standaard wijst de functie Rank() rangwaarden toe in oplopende volgorde en wordt bij gelijke stand de gemiddelde rang gebruikt.
We kunnen echter de bottom-up- methode en argumenten gebruiken om de waarden op een andere manier te ordenen:
#add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank (' dense ', ascending= False )
#view updated DataFrame
print (df)
team points points_rank
0 to 10 3.0
1 to 10 3.0
2 to 12 2.0
3 to 15 1.0
4 B 19 2.0
5 B 23 1.0
6 C 20 2.0
7 C 20 2.0
8 C 26 1.0
Deze methode kent een waarde van 1 toe aan de grootste waarde in elke groep.
Hier vindt u een volledige lijst met classificatiemethoden die u kunt gebruiken met de functie Rank() .
Opmerking : u kunt hier de volledige documentatie van de GroupBy-bewerking in panda’s vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Panda’s: hoe bereken je de cumulatieve som per groep
Panda’s: unieke waarden per groep tellen
Panda’s: hoe de correlatie per groep te berekenen