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