详解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二分法实现实例
Nov 21 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
跟老齐学Python之复习if语句
Oct 02 Python
给Python初学者的一些编程技巧
Apr 03 Python
python实现word 2007文档转换为pdf文件
Mar 15 Python
Python lambda函数基本用法实例分析
Mar 16 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
python Socket网络编程实现C/S模式和P2P
Jun 22 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
一组PHP加密解密函数分享
2014/06/05 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
vue设置一开始进入的页面教程
2019/10/28 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
React实现全选功能
2020/08/25 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python制作爬虫采集小说
2015/10/25 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
python实现12306火车票查询器
2017/04/20 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android