dataframe.groupby().agg()的使用
初学者从初学者角度理解dataframe.groupby().agg()
·
dataframe.groupby().agg():分组聚合函数(第一个括号分组,第二个括号聚合)
df.groupby(by=[‘x1’,’x2’...])[‘Y’].agg({dict}):表示根据x1,x2...对Y分组,通过agg()进行聚合
其中,
① 不指定Y【不传[‘Y’]】
agg中的字典中的keys【键值】必须是dataframe中存在的列,否则报错
② 指定Y
指定对dataframe中的Y列进行聚合计算,字典中的键值可以是dataframe中不存在的列,执行后自动添加该列
接下来我将通过一个例子来展示一下上述内容
首先先给大家看一下本次举例用到的数据(成绩是数值型数据,故本次聚合计算的就是成绩这一列)
①不指定Y:
a.
#根据班级分组,计算各年级的平均分
#数据框中包含'成绩'这一列,所以可以不用传Y,np.xxx计算'成绩'
result = df.groupby(by=['班级']).agg( {'成绩':np.mean} )
得到结果:
b.若字典键值(keys)传入的字符不在数据框中,报错,因为np.xxx不知道要去计算谁
result = df.groupby(by=['班级']).agg( {'各年级平均分':np.mean} )
②指定Y
result1 = df.groupby(by=['班级'])['成绩'].agg( {'各年级平均分':np.mean, '总人数':np.size, '总分':np.sum} )
得到结果:
此时你会发现,上面字典中定义的键值,不属于原数据框的列,但因为传入了Y(‘成绩’),此时的聚合函数np.xxx会去计算'成绩'这一列
【声明】1.数据框中的名字和成绩是乱写的
2.分组聚合函数的形式是凭个人理解写的,可能不太正规,如果该贴有任何不专业的地方或者错误,请多多包涵,我也是初学者,只想做笔记的同时帮助帮助和我一样的初学者
更多推荐
已为社区贡献1条内容
所有评论(0)