详解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 相关文章推荐
深入讲解Java编程中类的生命周期
Feb 05 Python
Python OS模块实例详解
Apr 15 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
python基于Selenium的web自动化框架
Jul 14 Python
Python如何实现动态数组
Nov 02 Python
python已协程方式处理任务实现过程
Dec 27 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
python unichr函数知识点总结
Dec 16 Python
django如何自定义manage.py管理命令
Apr 27 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
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
php语法检查的方法总结
2019/01/21 PHP
javascript 写类方式之三
2009/07/05 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
js切换光标示例代码
2013/10/10 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
详解Python self 参数
2019/08/30 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
临床医学大学生求职信
2013/09/28 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
初一家长会邀请函
2014/01/31 职场文书
合作意向书模板
2014/03/31 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书