详解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 14 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
python使用turtle库绘制树
Jun 25 Python
python 把列表转化为字符串的方法
Oct 23 Python
Python Cookie 读取和保存方法
Dec 28 Python
使用python实现滑动验证码功能
Aug 05 Python
flask 实现token机制的示例代码
Nov 07 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
超详细Python解释器新手安装教程
May 10 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数组交集的优化代码分析
2011/03/06 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
php面向对象值单例模式
2016/05/03 PHP
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
简单的分页代码js实现
2016/05/17 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
vue.js中created方法作用
2018/03/30 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
C#公司笔试题
2014/03/28 面试题
银行见习期自我鉴定
2014/01/29 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
opencv检测动态物体的实现
2021/07/21 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python