DataFrame分组和聚合
一、分组
1、语法
grouped= df.groupby(by='columns name') # grouped是一个DataFrameGroupBy对象,是可迭代的(遍历) # grouped中的每一个元素都是一个元祖 # 元祖: (索引(分组的值), 分组之后的DataFrame)
2、取值
grouped.count() # 获取分组中非NaN的数量 grouped.count()[['M']] # 获取M列索引的值, 注意 [['M']] 结果的type是DataFrame grouped.count()['M'] # 获取M列索引的值, 注意 ['M'] 结果的type是Series
3、多个分组
# 多个分组 grouped= df.groupby(by=['columns_name1', 'columns_name2']) # 获取分组后的某一部分数据 grouped = df1.groupby(by=['O', 'N']) grouped.count()['M'] 或 grouped['M'].count() # 对某几列数据进行分组 grouped = df1['M'].groupby(by=[df1['O'], df1['N']]) # Series # 或 grouped = df1[['M']].groupby(by=[df1['O'], df1['N']]) # DataFrame grouped.count()
二、聚合
DataFrameGroupBy对象的聚合方法
函数名 说明
count 分组中非NA的数量
sum 非NA值的和
mean 非NA值的平均值
median 非NA值的中位数
std、var 标准差、方差
min、max 非NA值中的最小值、最大值