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

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值