详解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 安装setuptools和pip工具操作方法(必看)
May 22 Python
Python selenium抓取微博内容的示例代码
May 17 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
python requests指定出口ip的例子
Jul 25 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 Python
Python中join()函数多种操作代码实例
Jan 13 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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
我的论坛源代码(五)
2006/10/09 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
javascript self对象使用详解
2016/10/18 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
python3 flask实现文件上传功能
2020/03/20 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
Python变量访问权限控制详解
2019/06/29 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
深入理解Python 多线程
2020/06/16 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
党员公开承诺书和承诺事项
2014/03/25 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
24年收藏2000多部退役军用电台
2022/02/18 无线电