详解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实现实例
Apr 26 Python
python删除列表内容
Aug 04 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
浅谈python对象数据的读写权限
Sep 12 Python
快速了解python leveldb
Jan 18 Python
Python实现聊天机器人的示例代码
Jul 09 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Python3enumrate和range对比及示例详解
Jul 13 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
详解python中*号的用法
Oct 21 Python
Python装饰器结合递归原理解析
Jul 02 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 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+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python异常处理总结
2014/08/15 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
python中关于数据类型的学习笔记
2020/07/19 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
运动会通讯稿200字
2014/02/16 职场文书
保健品市场营销方案
2014/03/31 职场文书
关于读书的活动方案
2014/08/14 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
大学生在校表现评语
2014/12/31 职场文书
北大自主招生自荐信
2015/03/04 职场文书
python中如何对多变量连续赋值
2021/06/03 Python