一、groupby函数
1. 分组函数的基本内容:
(a)根据某一列分组
grouped_single = df.groupby('School')
注意,这里的设置是没有显式的返回对象的,那么需要特殊的方法来调取结果。
# 找到分组变量值为S_1的记录
grouped_single.get_group('S_1').head()
(b)根据某几列分组
grouped_mul = df.groupby(['School','Class'])
# 即传入两个组值的索引,注意是圆括号
grouped_mul.get_group(('S_2','C_4'))
(c)组容量与组数
这里是给出方法来查看分组之后的一些元素:
# 单列分组容量
grouped_single.size()
# 多列分组容量
grouped_mul.size()
# 单列分组组数,注意没有()
grouped_single.ngroups
# 多列分组组数
grouped_mul.ngroups
(d)组的遍历
for name, group in grouped_single:
print(name)
display(group.head())
(e)level参数(用于多级索引)和axis参数
df.set_index(['Gender','School']).groupby(level=1,axis=0).get_group('S_1').head()
df.set_index(['Gender','School']).groupby(level=0,axis=0).get_group('M').head()
2. groupby对象的特点
(a)分组对象的head和first
# 返回每个组的前几行
grouped_single.head(2)
# 返回每个组的第一行
grouped_single.first()
(b)分组依据
df.groupby(np.random.choice(['a','b','c'],df.shape[0])