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


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

df.groupby(['group_var'])['value_var']. agg(pd.Series.mode )

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

Пример: режим расчета в объекте 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

Мы можем использовать следующий синтаксис для расчета значения очков режима для каждой команды:

#calculate mode points value for each team
df.groupby(['team'])['points']. agg(pd.Series.mode )

team
A 10
B [19, 23]
C 20
Name: points, dtype: object

Вот как интерпретировать вывод:

  • Значение очков режима для команды А равно 10 .
  • Значения очков моды для команды B равны 19 и 23 .
  • Значение очков режима для команды C равно 20 .

Если одна группа имеет несколько режимов, вы можете использовать следующий синтаксис для отображения каждого режима в отдельной строке:

#calculate mode points value for each team
df.groupby(['team'])['points'].apply (pd.Series.mode )

team 
A 0 10
B 0 19
 1 23
C 0 20
Name: points, dtype: int64

Примечание.Полную документацию по операции GroupBy в pandas можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

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

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