详解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采集腾讯新闻实例
Jul 10 Python
python实现简单ftp客户端的方法
Jun 28 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
python读写json文件的简单实现
Apr 11 Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
python 实现一次性在文件中写入多行的方法
Jan 28 Python
Python使用configparser读取ini配置文件
May 25 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
浅谈pytorch中的BN层的注意事项
Jun 23 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中oci8扩展
2015/06/18 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
python实现杨辉三角思路
2017/07/14 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
python绘制条形图方法代码详解
2017/12/19 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
python3.x实现发送邮件功能
2018/05/22 Python
在Python中定义一个常量的方法
2018/11/10 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
Python调用Windows命令打印文件
2020/02/07 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
致铅球运动员广播稿精选
2014/01/12 职场文书
《长相思》听课反思
2014/04/10 职场文书
2014年老干部工作总结
2014/11/21 职场文书
有关浪费资源的建议书
2015/09/14 职场文书