Pandas: как рассчитать ранг в объекте GroupBy


Вы можете использовать следующий синтаксис для вычисления ранга значений в объекте GroupBy в pandas:

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

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: вычисление ранга в объекте GroupBy

Предположим, у нас есть следующий кадр данных pandas, который показывает очки, набранные баскетболистами в разных командах:

import pandas as pd

#create DataFrame
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 A 10
1 A 10
2 A 12
3 A 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 A 10 1.5
1 A 10 1.5
2 A 12 3.0
3 A 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 A 10 3.0
1 A 10 3.0
2 A 12 2.0
3 A 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: как подсчитать уникальные значения по группам
Pandas: как рассчитать корреляцию по группе

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.