pandas_分组聚合_groupby和agg的区别

pandas_分组聚合_groupby和agg的区别

对特定字段进行聚合操作

对多个字段进行分组

对多个字段进行分组,多个字段进行聚合运算

数据地址:链接: https://pan.baidu.com/s/1A42jbAVw90AKqgfK2dpddg 提取码: jxth

import pandas
data = pandas.read_csv(
'C:/data/data/data.csv',
 engine='python',
 encoding='utf8'
)
data.head()
id	reg_date	id_num	gender	birthday	age
0	100000	2011/1/1	15010219621116401I	男	1962/11/16	52
1	100001	2011/1/1	45092319910527539E1991/5/27	23
2	100002	2011/1/1	35010319841017421J1984/10/17	30
3	100006	2011/1/1	37110219860824751B1986/8/24	28
4	100010	2011/1/1	53042219860714031J1986/7/14	28
# 先来统计按性别分组的用户数,输入以下代码
data.groupby('gender').count()
id	reg_date	id_num	birthday	age
gender					
女	4316	4316	4316	4316	431654785	54785	54785	54785	54785
# 然后再来统计按性别分组的平均值,输入以下代码
data.groupby('gender').mean()
id	age
gender		
女	149779.770853	30.392493149833.467829	26.979629
# 它又根据所有能统计的列都统计了结果。如果我只是仅仅希望按性别分组统计下用户数,以及按性别分组统计用户的平均年龄,那我该如何做呢?# Mr.林:这个时候可以使用groupby与agg函数组合进行统计。# 对特定字段进行聚合操作
data.groupby('gender')['id'].agg('count')
gender
女     431654785
Name: id, dtype: int64
# 然后再来按性别分组统计年龄的平均值,输入以下代码
data.groupby('gender')['age'].agg('mean')
gender
女    30.39249326.979629
Name: age, dtype: float64
# 小白突然又想到一个问题:那我能不能在性别分组的基础上,再加入一个分组列,比如将注册日期加到分组列里?
# Mr.林:这可以有,只要在gender前面再加入reg_date,如果还有其他分组列可以继续加入,用逗号分隔即可,输入以下代码# 对多个字段进行分组
data.groupby(['reg_date','gender'])['id'].agg('count').head()
reg_date   gender
2011/1/110
2011/1/106160
2011/1/1115165
Name: id, dtype: int64
# 那我能不能对多个列进行统计呢?现在只对id列进行统计,如果再把age列加进来,可以么?# Mr.林:这个同样可以有,不过如果还是计数的话,对id、age两列统计的结果是一样的,我们换成平均值统计试试,输入以下代码
# 对多个字段进行分组,多个字段进行聚合运算
data.groupby(['reg_date','gender'])['id','age'].agg('mean').head()
id	age
reg_date	gender		
2011/1/1100008.600000	29.200000
2011/1/10101276.500000	36.333333101295.262500	26.862500
2011/1/11101617.400000	31.400000101590.054545	26.636364

贴上原链接:https://mp.weixin.qq.com/s?__biz=MzA5MjcxNDQxNw==&mid=2247487674&idx=1&sn=3c3329e1f5622617980e9885643d5cfa&chksm=9069b464a71e3d724da6f55ba5d865c81cf46a4dcdd680a2d192b5b1cb714f34f66432532cc9&mpshare=1&scene=1&srcid=&sharer_sharetime=1585271535627&sharer_shareid=3177188b879205cdaf204a607a1dda00&key=415a1fbf986a67efb4fdb42c58e5959e630740609eef51b3c681790500b2acc3601f849ef474b1021e53306edf6b03c05a65912706f351e780fffbf6a9b648d047240c262c2e424b9d3dce39120c9ac9&ascene=1&uin=MjMzMTY4OTI2MQ%3D%3D&devicetype=Windows+10&version=62080079&lang=zh_CN&exportkey=Ae%2F2CtKrOsNry2gps40VFRo%3D&pass_ticket=EZTkZeaFj1a52g4%2BXdO4TiQsiMeh7AjS9o%2F9VMevjnaICrYQImAa%2Fwc%2B7PVNPpuM

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值