详解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 相关文章推荐
apache部署python程序出现503错误的解决方法
Jul 24 Python
Django内容增加富文本功能的实例
Oct 17 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
Python一行代码实现自动发邮件功能
May 30 Python
python多次执行绘制条形图
Apr 20 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
类的另类用法--数据的封装
2006/10/09 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
php链式操作的实现方式分析
2019/08/12 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
应聘自荐书
2013/10/08 职场文书
大学生秋游活动方案
2014/02/17 职场文书
英语系毕业生求职信
2014/07/13 职场文书
中学推普周活动总结
2015/05/07 职场文书
学校工会工作总结2015
2015/05/19 职场文书
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技