数据源
import pandas as pd
df = pd.DataFrame([['liver','E',89,21,24,64],
['Arry','C',36,37,37,57],
['Ack','A',57,60,18,84],
['Eorge','C',93,96,71,78],
['Oah','D',65,49,61,86]
],
columns = ['name','team','Q1','Q2','Q3','Q4'])
df
实例1: 计算每个team的Q1季度平均值
单列分组聚合
res1 = df.groupby("team")["Q1"].mean()
res1
实例2: 计算每个team的Q1季度和Q3季度平均值
多列分组聚合
res2 = df.groupby("team")[["Q1","Q3"]].mean()
res2
实例3: 计算每个team的Q2季度平均值和Q2季度最大值
使用agg函数来计算多个聚合值
res3 = df.groupby("team")["Q2"].agg(["mean", "max"])
res3
我们也可以对聚合的结果进行命名
res3 = df.groupby('team')['Q2'].agg([('avg_Q2','mean'), ('max_Q2','max')])
扩展补充: 根据字段'team'进行分组,字段'Q1'求和,字段'Q2'求平均
import numpy as np
'''
Q1 Q2
team
A 57 60.0
C 129 66.5
D 65 49.0
E 89 21.0
'''
df.groupby('team').agg({"Q1":np.sum, "Q2":np.mean})
实例4: 计算每个team的Q2季度和Q4季度的平均值和最大值
res4 = df.groupby("team")[["Q2","Q4"]].agg(["mean", "max"])
res4
实例5: 计算每个team的Q1季度平均值与Q2季度平均值之差
res5 = df.groupby('team').apply(lambda x:x['Q1'].mean() - x['Q2'].mean())
res5