详解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网络编程学习笔记(四):域名系统
Jun 09 Python
Python语言的12个基础知识点小结
Jul 10 Python
Python中类型关系和继承关系实例详解
May 25 Python
Python素数检测实例分析
Jun 15 Python
python 查找字符串是否存在实例详解
Jan 20 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
python用requests实现http请求代码实例
Oct 31 Python
Django框架安装及项目创建过程解析
Sep 14 Python
Python OpenCV超详细讲解基本功能
Apr 02 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中接口的应用
2015/08/12 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
看了就知道什么是JSON
2007/12/09 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
python 检查是否为中文字符串的方法
2018/12/28 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
大学生职业生涯规划方案
2014/01/03 职场文书
结对共建协议书
2014/08/20 职场文书
端午节活动总结
2014/08/26 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
Flink 侧流输出源码示例解析
2022/09/23 Servers