详解python中groupby函数通俗易懂


Posted in Python onMay 14, 2020

一、groupby 能做什么?

python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!

对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下:

df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式——函数名称)

举例如下:

print(df["评分"].groupby([df["地区"],df["类型"]]).mean())
#上面语句的功能是输出表格所有数据中不同地区不同类型的评分数据平均值

二、单类分组

A.groupby("性别")

详解python中groupby函数通俗易懂

首先,我们有一个变量A,数据类型是DataFrame

想要按照【性别】进行分组

得到的结果是一个Groupby对象,还没有进行任何的运算。

describe()

描述组内数据的基本统计量

A.groupby("性别").describe().unstack()

详解python中groupby函数通俗易懂

* 只有数字类型的列数据才会计算统计

* 示例里面数字类型的数据有两列 【班级】和【身高】

但是,我们并不需要统计班级的均值等信息,只需要【身高】,所以做一下小的改动:

A.groupby("性别")["身高"].describe().unstack()

详解python中groupby函数通俗易懂

unstack()

索引重排

上面的例子里面用到了一个小的技巧,让运算结果更便于对比查看,感兴趣的同学可以自行去除unstack,比较一下显示的效果

三、多类分组

A.groupby( ["班级","性别"])

详解python中groupby函数通俗易懂

单独用groupby,我们得到的还是一个 Groupby 对象。

mean()

组内均值计算

DataFrame的很多函数可以直接运用到Groupby对象上。

详解python中groupby函数通俗易懂

上图截自 pandas 官网 document,这里就不一一细说。

我们还可以一次运用多个函数计算

A.groupby( ["班级","性别"]).agg([np.sum, np.mean, np.std]) # 一次计算了三个

详解python中groupby函数通俗易懂

agg()

分组多个运算

四、时间分组

时间序列可以直接作为index,或者有一列是时间序列,差别不是很大。

这里仅仅演示,某一列为时间序列。

为A 新增一列【生日】,由于分隔符 “/” 的问题,我们查看列属性,【生日】的属性并不是日期类型

详解python中groupby函数通俗易懂

我们想做的是:

1、按照【生日】的【年份】进行分组,看看有多少人是同龄?

A["生日"] = pd.to_datetime(A["生日"],format ="%Y/%m/%d") # 转化为时间格式
A.groupby(A["生日"].apply(lambda x:x.year)).count() # 按照【生日】的【年份】分组

进一步,我们想选拔:

2、同一年作为一个小组,小组内生日靠前的那一位作为小队长:

A.sort_values("生日", inplace=True) # 按时间排序
A.groupby(A["生日"].apply(lambda x:x.year),as_index=False).first()

详解python中groupby函数通俗易懂

as_index=False

保持原来的数据索引结果不变

first()

保留第一个数据

Tail(n=1)

保留最后n个数据

再进一步:

3、想要找到哪个月只有一个人过生日

A.groupby(A["生日"].apply(lambda x:x.month),as_index=False) # 到这里是按月分组
A.groupby(A["生日"].apply(lambda x:x.month),as_index=False).filter(lambda x: len(x)==1)

详解python中groupby函数通俗易懂

filter()

对分组进行过滤,保留满足()条件的分组

以上就是 groupby 最经常用到的功能了。

用 first(),tail()截取每组前后几个数据

用 apply()对每组进行(自定义)函数运算

用 filter()选取满足特定条件的分组

到此这篇关于详解python中groupby函数通俗易懂的文章就介绍到这了,更多相关python groupby函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python动态参数用法实例分析
May 25 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python中查看文件名和文件路径
Mar 31 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
python读取文本绘制动态速度曲线
Jun 21 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
python实现对变位词的判断方法
Apr 05 Python
python Django 反向访问器的外键冲突解决
May 20 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
django 解决扩展自带User表遇到的问题
May 14 #Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 #Python
Python基于numpy模块实现回归预测
May 14 #Python
Django之全局使用request.user.username的实例详解
May 14 #Python
Django使用Profile扩展User模块方式
May 14 #Python
python网络编程之五子棋游戏
May 14 #Python
Jupyter notebook如何修改平台字体
May 13 #Python
You might like
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
Python转码问题的解决方法
2008/10/07 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python算法应用实战之队列详解
2017/02/04 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python编程argparse入门浅析
2018/02/07 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
EJB的几种类型
2012/08/15 面试题
工程师求职简历的自我评价分享
2013/10/10 职场文书
个人求职信范文分享
2013/12/13 职场文书
求职意向书
2014/04/01 职场文书
法人授权委托书格式
2014/04/08 职场文书
师德演讲稿范文
2014/05/06 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
golang中的struct操作
2021/11/11 Golang