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 .
  • Значення очок моди для команди B становлять 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:

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

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

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