详解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 14 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
requests和lxml实现爬虫的方法
Jun 11 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
Python threading的使用方法解析
Aug 28 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
python3实现Dijkstra算法最短路径的实现
May 12 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
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
Javascript学习笔记1 数据类型
2010/01/11 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
使用Django和Python创建Json response的方法
2018/03/26 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python3 批量扫描端口的例子
2019/07/25 Python
python接入支付宝的实例操作
2020/07/20 Python
请说出以下代码输出什么
2013/08/30 面试题
生产车间班组长岗位职责
2014/01/06 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
运动会开幕式主持词
2014/03/28 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫