跟小白学Python数据分析——分组分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了跟小白学Python数据分析——分组分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3543字,纯文字阅读大概需要6分钟。
内容图文
![跟小白学Python数据分析——分组分析](/upload/InfoBanner/zyjiaocheng/614/14c2405daecb4c47a358e20e1fcd7d23.jpg)
小白:Mr.林,基本统计分析我已经会了,现在我想按性别分组统计下用户数,以及按性别分组统计用户的平均年龄,那我该如何做呢?
Mr.林:在Pandas中,对数据进行分组统计需要使用groupby函数。
我们继续使用导入使用的案例数据进行学习,输入以下代码:
1import pandas
2data = pandas.read_csv(
3'D:/D/data.csv',
4 engine='python',
5 encoding='utf8'
6)
Mr.林:执行后,在变量浏览窗口中就可以看到刚导入的data变量了,双击打开data变量,就可以得到下面这张表。
先来统计按性别分组的用户数,输入以下代码
1data.groupby('gender').count()
得到的结果如下所示
1 id reg_date id_num birthday age
2gender
3女 4316 4316 4316 4316 4316
4男 54785 54785 54785 54785 54785
然后再来统计按性别分组的平均值,输入以下代码
1data.groupby('gender').mean()
得到的结果如下所示
1 id age
2gender
3女 149779.770853 30.392493
4男 149833.467829 26.979629
小白:我发现了一个问题,它又根据所有能统计的列都统计了结果。如果我只是仅仅希望按性别分组统计下用户数,以及按性别分组统计用户的平均年龄,那我该如何做呢?
Mr.林:这个时候可以使用groupby与agg函数组合进行统计。
还是先来按性别分组统计id的数量,也就是用户数,输入以下代码
1data.groupby('gender')['id'].agg('count')
执行后,得到的结果如下所示
1gender
2女 4316
3男 54785
然后再来按性别分组统计年龄的平均值,输入以下代码
1data.groupby('gender')['age'].agg('mean')
执行后,得到的结果如下所示
1gender
2女 30.392493
3男 26.979629
小白:啊哈!棒棒哒!
小白突然又想到一个问题:那我能不能在性别分组的基础上,再加入一个分组列,比如将注册日期加到分组列里?
Mr.林:这可以有,只要在gender前面再加入reg_date,如果还有其他分组列可以继续加入,用逗号分隔即可,输入以下代码
1data.groupby(['reg_date','gender'])['id'].agg('count')
执行后,得到的结果如下所示
1reg_date gender
22011/1/1 男 10
32011/1/10 女 6
4 男 160
52011/1/11 女 15
6 男 165
72011/1/12 女 19
8 男 132
92011/1/13 女 16
10 男 167
112011/1/14 女 13
12 男 194
13.........................
小白继续追问道:那我能不能对多个列进行统计呢?现在只对id列进行统计,如果再把age列加进来,可以么?
Mr.林:这个同样可以有,不过如果还是计数的话,对id、age两列统计的结果是一样的,我们换成平均值统计试试,输入以下代码
1data.groupby(['reg_date','gender'])['id','age'].agg('mean')
执行后,得到的结果如下所示
1 id age
2reg_date gender
32011/1/1 男 100008.600000 29.200000
42011/1/10 女 101276.500000 36.333333
5 男 101295.262500 26.862500
62011/1/11 女 101617.400000 31.400000
7 男 101590.054545 26.636364
82011/1/12 女 101897.157895 28.157895
9 男 101874.174242 26.500000
102011/1/13 女 102122.625000 30.562500
11 男 102153.694611 27.101796
122011/1/14 女 102461.153846 32.384615
13 男 102482.067010 26.974227
14.........................
小白:太棒了,我还有个疑问,groupby那里跟后面id、age的中括号是什么意思呀?
Mr.林:中括号代表列表的意思,下次再详细告诉你,今天就到这,小白你回去要多多练习,多敲代码。
如果你喜欢本文,可以点击右下角在看
如果你在跟着学习,请在留言区留言:打卡
如果你刚看到本文,可以查看本系列历史文章跟着学习:
跟小白学Python数据分析——Anaconda安装
跟小白学Python数据分析——使用spyder
跟小白学Python数据分析——数据导入1
跟小白学Python数据分析——数据导入2
跟小白学Python数据分析——描述性统计分析
长按识别下方二维码,并关注公众号
回复“DR”获取案例数据
内容总结
以上是互联网集市为您收集整理的跟小白学Python数据分析——分组分析全部内容,希望文章能够帮你解决跟小白学Python数据分析——分组分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。