一、数据分组

1.GroupBy简介

GroupBy技术用于数据分组运算,类似于Excel的分类汇总(对于不同分类进行运算),其运算的核心模式为split-apply-combine,如下图所示,首先,数据及按照key(分组键)的方式分成小的数据片(split);然后对每一个数据片进行操作,如分类求和(apply)最后将结果再组合起来形成新的数据及(combine)

利用GroupBy方法可以轻松地完成分组统计的任务。以消费数据集为例,通过性别分别计算消费平均值,如下图:

返回的group1为GroupBy对象,是保存的中间数据,该对象调用mean()方法即可返回数据。

mena方法完成了分组数据的聚合运算,返回列一个Series数据,更多聚合运算将在后面讲解。当然,也可以通过分组键进行计算,通过day和time,计算小费平均值。

GroupBy对象是可迭代的,其构造为一组二元元祖,如下图:

注:GroupBy由分组名和数据片构成。

size方法可以返回各分组的大小,如下图:

2.列名分组

groupby方法使用的分组键为Series。当然,分组键也支持其他的格式,下面的内容中将一一介绍分组键格式和使用方法。DataFrame数据的列索引名称可以作为分组键,如下图:

用列索引名称可以作为分组键时,用于分组的对象必须是DataFrame数据本身,否则搜索不到索引名会报错,绘制下图,可以看出吸烟对消费数据的影响:

我们可以发现是否吸烟对给小费的影响并不大

上述方法返回的是多列DataFrame的数据,如果只需要获取tip(小费)列数据,通过索引选取即可。但GroupBy对象也可以通过索引获取tip列,然后再进行聚合运算,他其实相当于语法糖,更好用,如下图:

作图查看小费金额与聚餐人数是否有关

可以看出,小费金额基本上与聚餐人数呈正相关,但人数为5时,有下降的趋势

3.按列表或元组分组

分组键也可以是长度适当的列表或元组,长度适当其实就是要与带分组的DataFrame的行数一样,简单地理解,就是把列表或者元组当成DataFarme的一列,然后按其分组

4.按字典分组

如果按照原始的DataFrame中的分组信息很难确定或者不存在 ,可通过字典结构,定义分组的信息,如图:

5.按函数分组

函数作为分组键的原理类似于字典,通过映射关系进行分组,但是函数分组更加灵活,如下图,通过DataFrame最后一列的数值进行正负分组。

对于层次化索引,可通过级别进行分组,通过level参数,输入编号或名称即可,如下图:

当然也可以在列上进行分组(axis=1)如下图:

二、聚合运算

聚合运算就是对分组后的数据进行计算,产生标量值的数据转换过程。本书将讲解常用的聚合函数和自定义聚合函数的用法。

1.聚合函数

前面的例子中使用了部分聚合运算方法,如mean、count、sum函数,如下表所示,为常用的聚合运算方法。

注:空值不参与计算

然后通过性别分组,计算小费的最大值。

其实,除了上述聚合运算方法外,只要是Series或DataFrame支持的能用于分组的运算函数都可以拿来使用。

对于更加复杂的聚合运算,可以自定义聚合函数,通过aggregate或agg参数传入即可。

例如,通过性别分类,计算小费最大值与最小值的差(极差),如下图 :

通过上图,我们可以看出,男性(Male)的小费极差比女性(Female)大很多,说明在小费给予中,男性的差异较大,主观性更大。

2.多函数应用

(1)一行多函数

如下图,对agg参数传入多函数列表,即可完成一列的多函数运算。

如果不想使用默认的运算函数列名 ,可以元组的形式传入,前面为名称,后面为聚合函数,如下图:

(2)多列多函数

对多列进行多聚合函数运算时,会产生层次化索引,如下图:

(3)不同列不同函数

如果需要对不同列使用不同的函数运算,可以通过字典来定义映射关系,如下图:

如果希望返回的结果不以分组键为索引,通过as_index=False可以完成,如下图:

数据分析--数据的分组和聚合相关推荐

  1. 机器学习之Pandas:Pandas介绍、基本数据操作、DataFrame运算、Pandas画图、文件读取与处、缺失值处理、数据离散化、合并、交叉表和透视表、分组与聚合、案例(超长篇,建议收藏慢慢看)

    文章目录 Pandas 学习目标 1Pandas介绍 学习目标 1 Pandas介绍 2 为什么使用Pandas 3 案例: 问题:如何让数据更有意义的显示?处理刚才的股票数据 给股票涨跌幅数据增加行 ...

  2. 利用python进行数据分析-数据聚合与分组运算2

    1.分组级运算和转换 聚合只不过是分组运算的其中一种而已.介绍transform和apply方法,它们能够执行更多其他的分组运算 假设我们想要为一个DataFrame添加一个用于存放各索引分组平均值的 ...

  3. 如何使用agg函数对数据进行分组聚合

    转载自知乎:侦探L  如何使用agg函数对数据进行分组聚合 - 知乎 在上篇文章中,我们详细地介绍了如何使用groupby函数对数据进行分组.而在python的数据分组中,除了groupby函数之外, ...

  4. 阿拉丁统计 2.0丨筛选?分组?聚合能力?「高级分析」精细化数据统计管理

    前两期,我们分享了阿拉丁统计 2.0 的「开源 SDK」和「指标商店」,后台收到了很多粉丝的咨询与试用申请.本期我们就从"事件分析"着手,开启第三个话题--「高级分析」. 在日常工 ...

  5. 时序数据库如何支持秒级上亿数据的查询分组和聚合运算

    https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162499&idx=1& sn=ca43c74ef541b ...

  6. 聚合多个文件_python数据分析与挖掘(二十五)--- Pandas高级处理分组与聚合

    分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况 想一想其实刚才的交叉表与透视表也有分组的功能,所以算是分组的一种形式,只不过他们主要是计算次数或者计算比例!!看其中 ...

  7. 【python数据分析】数据的分组,遍历,统计

    数据的分组,遍历,统计 俗话说:"人与类聚,物以群分",到这里我们将学习数据的分组以及分组后统计.Pandas的分组相对于Excel会更加简单和灵活. 1️⃣分组 Pandas提供 ...

  8. Python数据分析pandas之分组统计透视表

    Python数据分析pandas之分组统计透视表 数据聚合统计 Padans里的聚合统计即是应用分组的方法对数据框进行聚合统计,常见的有min(最小).max(最大).avg(平均值).sum(求和) ...

  9. dataframe 众数的方法_pandas 第11篇:DataFrame-数据处理(分组、聚合、窗口、相关、统计)...

    数据处理的目的是为了数据分析,下面分享常用的数据分析中会用到的函数. 一,分组和聚合 groupby用于对数据分组,分组之后可以直接调用聚合函数求值:agg()函数把分组和调用聚合函数集成到一个函数来 ...

  10. Tableau数据分析数据可视化分析平台

    Tableau数据分析&数据可视化分析平台 ​ 本文章内涉及的资源包以及素材均来自于互联网,仅供大家用来交流学习与研究使用,努力提升自己的一篇文章.各类安装包以及素材版权归属原版权方所有,版权 ...

最新文章

  1. Educational Codeforces Round 93 (Rated for Div. 2) 题解
  2. 使用VS2010调用matlab的mat格式文件
  3. 马化腾很受伤 后果很严重
  4. plsql轻量版游标的使用2
  5. SQL Serve 查询所有可用的数据库语句
  6. 微信公众号开发之微信买单
  7. Oracle 11g vs 12c 内存、优化器等默认参数对比
  8. jQuery.callbacks 注释
  9. Hibernate的持久化对象状态的方法
  10. 最近 搞定这5篇 java相关
  11. 全网首发!超全SparseR-CNN实战教程
  12. JAVA流程图——主要用于循环
  13. 电脑使用技巧提升篇2:修改电脑桌面固定图标
  14. ensp vlan 划分
  15. 小程序 40163_微信小程序请求openid错误码40163
  16. 肌酸报告:17个肌酸使用常见问题解答
  17. 2021芒部中学高考成绩查询,2021年镇雄县高考状元名单资料,今年镇雄县高考状元多少分...
  18. 电脑开机不能进入系统--死机
  19. [产品经理]产品管理职位的级别
  20. ESP32学习笔记十九之BLE协议GAPGATT

热门文章

  1. 计算机辅助药物设计的心得,计算机辅助药物设计实验的探索与心得.doc
  2. 要做最快的男人,教你用Python写一个打字测试器测试你的打字速度~
  3. 火狐浏览器打不开html,火狐浏览器打不开网页的原因及解决办法
  4. 台式计算机蓝牙完成配对,电脑蓝牙已配对但连不上 带你快速解决一下
  5. 背包问题(Knapsack Problem) ----- 蛮力法
  6. Unity-动画系统-Animat
  7. python完全平方数_python判断完全平方数的方法
  8. 系统win8 任务栏消失不见的解决办法
  9. 创建自己的腾讯云存储桶,将图片上传到腾讯云,并实现父子之间的数据双向绑定
  10. python 发音-python读音