详解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生成器(Generator)详解
Apr 13 Python
详解 Python 读写XML文件的实例
Aug 02 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
python3连接MySQL数据库实例详解
May 24 Python
Python调用服务接口的实例
Jan 03 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
基于Django实现日志记录报错信息
Dec 17 Python
python中rc1什么意思
Jun 19 Python
Python手动或自动协程操作方法解析
Jun 22 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
pytorch 使用半精度模型部署的操作
May 24 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 日常开发小技巧
2009/09/23 PHP
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
如何打开php的gd2库
2017/02/09 PHP
php pdo操作数据库示例
2017/03/10 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
Python全局变量用法实例分析
2016/07/19 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
Django 重写用户模型的实现
2019/07/29 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
Python3 合并二叉树的实现
2019/09/30 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
python一些性能分析的技巧
2020/08/30 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
UML设计模式笔试题
2014/06/07 面试题
教育科研先进个人材料
2014/01/26 职场文书
小学一年级评语大全
2014/04/22 职场文书
安全教育演讲稿
2014/05/09 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python