详解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实现端口复用实例代码
Jul 03 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
Python面向对象特殊成员
Apr 24 Python
简单了解python的break、continue、pass
Jul 08 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
Python @property及getter setter原理详解
Mar 31 Python
python如何安装下载后的模块
Jul 03 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
python实现学生通讯录管理系统
Feb 25 Python
Django实现聊天机器人
May 31 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教程 基本语法
2009/10/23 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
python显示生日是星期几的方法
2015/05/27 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Python简单实现控制电脑的方法
2018/01/22 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
python求最大值最小值方法总结
2019/06/25 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
什么是数组名
2012/05/10 面试题
社区党建工作方案
2014/06/10 职场文书
医学生求职信
2014/07/01 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
检举信的写法
2019/04/10 职场文书