1.简介
(1)根据某些条件将数据拆分成组
(2)对每个组独立应用函数
(3)将结果合并到一个数据结构中
Dataframe在行(axis=0)或列(axis=1)上进行分组,将一个函数应用到各个分组并产生一个新值,然后函数执行结果被合并到最终的结果对象中。
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
2.实战演练
2.1 简单分组统计并聚合
import pandas as pd
import numpy as np
df = pd.DataFrame({'科目' : ['语文', '语文', '语文', '数学','数学'],
'姓名' : ['Jack', 'Lucy', 'Alice', 'Mark', 'Jhon'],
'性别' : ['man', 'woman', 'woman', 'man', 'man'],
'成绩' : [85, 90, 70, 60, 100]})
print(df)
print('------')
print(df.groupby('科目'), type(df.groupby('科目')))
print('------')
# 直接分组得到一个groupby对象,是一个中间数据,没有进行计算
a = df.groupby('科目').mean()
b = df.groupby(['科目','性别']).mean()
c = df.groupby(['科目'])['成绩'].mean() # 以A分组,算D的平均值
print(a,type(a),'\n',a.columns)
print(b,type(b),'\n',b.columns)