详解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中__call__用法实例
Aug 29 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
python的构建工具setup.py的方法使用示例
Oct 23 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
django 实现电子支付功能的示例代码
Jul 25 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
Python实现将蓝底照片转化为白底照片功能完整实例
Dec 13 Python
python+requests接口自动化框架的实现
Aug 31 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
Sep 21 Python
Django Auth用户认证组件实现代码
Oct 13 Python
Python环境搭建过程从安装到Hello World
Feb 05 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
js三种排序算法分享
2012/08/16 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python使用pil生成缩略图的方法
2015/03/26 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
新闻编辑自荐信
2013/11/03 职场文书
五一家具促销方案
2014/01/10 职场文书
入学生会自荐书范文
2014/02/05 职场文书
黄河象教学反思
2014/02/10 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
Redis keys命令的具体使用
2022/06/05 Redis