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


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

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

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

Пример. Режим вычисления в объекте 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

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

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

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

Вот как интерпретировать результат:

  • Стоимость очков моды для команды А равна 10 .
  • Значения очков моды для Команды Б — 19 и 23 .
  • Значение очков моды для команды C равно 20 .

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *