Pandy: jak obliczyć ranking w obiekcie groupby


Możesz użyć poniższej składni, aby obliczyć kolejność wartości w obiekcie GroupBy w pandach:

 df[' rank '] = df. groupby ([' group_var '])[' value_var ']. rank ()

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: obliczanie rankingu w obiekcie GroupBy

Załóżmy, że mamy następującą ramkę danych pand, która pokazuje punkty zdobyte przez koszykarzy z różnych drużyn:

 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

Do obliczenia rankingu wartości punktowych dla każdej drużyny możemy zastosować następującą składnię:

 #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

Domyślnie funkcja Rank() przypisuje wartości rang w kolejności rosnącej, a w przypadku remisu wykorzystuje średnią rangę.

Możemy jednak zastosować metodę oddolną i argumenty, aby uporządkować wartości w inny sposób:

 #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

Ta metoda przypisuje wartość 1 największej wartości w każdej grupie.

Pełną listę metod rankingowych, których można używać z funkcją Rank() można znaleźć tutaj .

Uwaga : pełną dokumentację operacji GroupBy w pandach znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Pandy: jak obliczyć skumulowaną sumę na grupę
Pandy: jak liczyć unikalne wartości według grupy
Pandy: jak obliczyć korelację według grup

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *