Pandas: як обчислити рейтинг в об’єкті groupby


Ви можете використовувати такий синтаксис, щоб обчислити порядок значень в об’єкті GroupBy в pandas:

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

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: обчислення рейтингу в об’єкті GroupBy

Припустимо, що у нас є наступний DataFrame pandas, який показує очки, набрані баскетболістами з різних команд:

 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

Ми можемо використовувати наступний синтаксис для розрахунку рейтингу балів для кожної команди:

 #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

За замовчуванням функція Rank() призначає значення рангу в порядку зростання і використовує середній ранг у разі нічиєї.

Однак ми можемо використовувати висхідний метод і аргументи, щоб упорядкувати значення іншим способом:

 #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

Цей метод присвоює значення 1 найбільшому значенню в кожній групі.

Ви можете знайти повний список методів ранжирування, які можна використовувати з функцією Rank() тут .

Примітка . Повну документацію щодо операції GroupBy в pandas можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Панди: як розрахувати сукупну суму на групу
Pandas: як підрахувати унікальні значення по групах
Pandas: як розрахувати кореляцію за групою

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *