Pandas: як згрупувати два стовпці та агрегувати


Ви можете використовувати наступний базовий синтаксис із функцією groupby() у pandas, щоб групувати за двома стовпцями та агрегувати інший стовпець:

 df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()

Цей конкретний приклад групує DataFrame за стовпцями var1 і var2 , а потім обчислює середнє значення стовпця var3 .

У наведених нижче прикладах показано, як згрупувати два стовпці та агрегувати за допомогою наступних pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'],
                   ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team position points
0 AG 15
1 AG 22
2 AF 24
3 AF 25
4 AF 20
5 BG 35
6 BG 34
7 BG 19
8 BG 14
9 BF 12

Приклад 1: згрупуйте два стовпці та обчисліть середнє значення іншого стовпця

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

 #calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()

team position
AF23.0
      G 18.5
BF 12.0
      G 25.5
Name: points, dtype: float64

З результату ми бачимо:

  • Середнє значення балів гравців команди А на позиції F становить 23 .
  • Середнє значення балів гравців команди А на позиції G становить 18,5 .

І так далі.

Приклад 2: згрупуйте два стовпці та обчисліть максимум іншого стовпця

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

 #calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()

team position
AF25
      G22
BF 12
      G 35
Name: points, dtype: int64

З результату ми бачимо:

  • Максимальне значення очок для гравців команди A на позиції F становить 25 .
  • Максимальне значення балів для гравців команди А на позиції G становить 22 .

І так далі.

Приклад 3: групування за двома стовпцями та підрахунок випадків

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

 #count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()

team position
AF3
      G2
BF 1
      G4
dtype: int64

З результату ми бачимо:

  • У команді А на позиції F є 3 гравці.
  • У команді А на позиції G є 2 гравці.

І так далі.

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

У наступних посібниках пояснюється, як виконувати інші типові завдання в pandas:

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

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

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