详解python pandas 分组统计的方法


Posted in Python onJuly 30, 2019

首先,看看本文所面向的应用场景:我们有一个数据集df,现在想统计数据中某一列每个元素的出现次数。这个在我们前面文章《如何画直方图》中已经介绍了方法,利用value_counts()就可以实现(具体回看文章)

但是,现在,我们考虑另外一个场景,我们假如要想统计其中两列元素出现次数呢?举个栗子:

详解python pandas 分组统计的方法

在df数据集中,如果我们想统计A、B两列的元素的出现情况,也就是说,得到如下表。

详解python pandas 分组统计的方法

从上面的最后一列可以看到,在A、B两列中,1 2 出现了2次,1 4 出现1次 ,1 6出现1次,2 3出现了2次, 2 4 出现1次, 3 1出现了1次

具体实现的代码:

import pandas as pd
df=pd.DataFrame([[1,2,2],[1,4,5],[1,2,4],[1,6,3],[2,3,1],[2,4,1],[2,3,5],[3,1,1]],columns=['A','B','C'])
gp=df.groupby(by=['A','B'])
gp.size()

所以,如果想统计更多列,只要在groupby()中的by参数添加就可以,例如统计3列。

gp=df.groupby(by=['A','B','C'])

由gp.size()得到的是可以mulitiindex Series。

下面,要转化成DataFrame的结构。

newdf=gp.size()
newdf.reset_index(name='times')

详解python pandas 分组统计的方法

其中name中参数就是我们可以为最后一列添加新的名字,例如这里的“times”

这个时候newdf已经是DataFrame的类型了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用cStringIO实现临时内存文件访问的方法
Mar 26 Python
Python使用剪切板的方法
Jun 06 Python
django Serializer序列化使用方法详解
Oct 16 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
python之生成多层json结构的实现
Feb 27 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
python中format函数如何使用
Jun 22 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
Pycharm安装python库的方法
Nov 24 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
python文档字符串(函数使用说明)使用详解
Jul 30 #Python
python3.6 tkinter实现屏保小程序
Jul 30 #Python
简单了解python变量的作用域
Jul 30 #Python
学习和使用python的13个理由
Jul 30 #Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 #Python
python利用tkinter实现屏保
Jul 30 #Python
django 微信网页授权登陆的实现
Jul 30 #Python
You might like
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
JS input 数字验证代码
2009/07/30 Javascript
director.js实现前端路由使用实例
2015/02/03 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
Python教程之全局变量用法
2016/06/27 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
2014学年自我鉴定
2014/02/23 职场文书
教学评估实施方案
2014/03/16 职场文书
新法人代表任命书
2014/06/06 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
倡议书的格式写法
2015/04/28 职场文书
中学教师教学工作总结
2015/08/13 职场文书