详解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 相关文章推荐
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Selenium元素的常用操作方法分析
Aug 10 Python
python解析json串与正则匹配对比方法
Dec 20 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
python对一个数向上取整的实例方法
Jun 18 Python
PyTorch 导数应用的使用教程
Aug 31 Python
Python内置函数及功能简介汇总
Oct 13 Python
python实现MD5进行文件去重的示例代码
Jul 09 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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
任意位置显示html菜单
2007/02/01 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
RC4文件加密的python实现方法
2015/06/30 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
物业总经理岗位职责
2014/02/28 职场文书
小学教育见习报告
2014/10/31 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
内勤岗位职责
2015/02/10 职场文书
老员工辞职信范文
2015/05/12 职场文书
会议简报格式范文
2015/07/20 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
python获取字符串中的email
2022/03/31 Python