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.分组聚合函数的形式是凭个人理解写的,可能不太正规,如果该贴有任何不专业的地方或者错误,请多多包涵,我也是初学者,只想做笔记的同时帮助帮助和我一样的初学者

物联沃分享整理
物联沃-IOTWORD物联网 » dataframe.groupby().agg()的使用

发表评论