pandas数据聚合与分组运算

本文深入探讨了pandas的GroupBy功能,包括如何根据键进行数据拆分、应用函数并合并结果。介绍了使用分组进行统计计算、按照DataFrame列、字典或函数进行分组的方法,以及如何进行数据聚合、自定义聚合函数和多函数应用。还讨论了transform和apply方法,用于执行更复杂的分组运算和数据转换,特别提到了如何处理缺失值和层次化索引。
摘要由CSDN通过智能技术生成

pandas提供了一个灵活高效的groupby功能,它能以一种自然的方式对数据集进行切片、切块、摘要等操作。

本章中将会看到Python和pandas强大的表达能力,可以执行复杂得多的分组运算(利用任何可以接受pandas对象或Numpy数组的函数),本章中将会学到:

  • 根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象

  • 计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。

  • 对DataFrame的列应用各种各样的函数

  • 应用组内转换或其他运算,如规格化、线性回归、排名或选取子集等

  • 计算透视表或交叉表

  • 执行分位数分析以及其他分组分析

注意:对事件数据的聚合(groupby的特殊用法之一)也称作重采样,会单独讲解

1、GroupBy技术“split-appy-combain”(拆分-应用-合并)

  • pandas对象中的数据根据提供的一个或多个键被拆分(split)为多组。拆分是按轴进行的 axis=0行 axis=1列

  • 将一个函数应用(apply)到各个分组并产生一个新值

  • 最后,函数的执行结果会被合并(combain)到最终的结果对象中

      结果对象的形式一般取决于数据上所执行的操作

下图是一个简单的分组聚合过程

分组键可以有多重形式,且类型不必相同:

  1. 列表或数组,其长度与待分组的轴一样
  2. DataFrame的某列
  3. 字典或Series,给出待分组轴上的值与分组名之间的对应关系
  4. 函数,用于处理轴索引或索引中的各个标签

注意:后三种都只是快捷方式而已,其最终的目的仍然是产生一组用于拆分对象的值。

1.按照列表或数组分组,其长度与待分组的轴一样

2、按照DataFrame的某列分组

上例中,因为key2列不是数值数据,所以被过滤掉了。默认情况下,所有数值都会被聚合,虽然有时候可能会被过滤为一个子集

无论用group做什么,都有可能会用到GroupBy的Size方法,它可以返回一个含有分组大小的Series:

注意:任何分组关键词中的缺失值,都会被从结果中除去。

查看分组后的结果:

GroupBy对象支持迭代,可以产生一组二元元组(由分组名和数据块组成)

对于多重键的情况,元组的第一个元素将会是由键值组成的元组:

当然可以对这些数据片段做任何操作。一个可能有用的操作是 将这些数据片段做成一个字典。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值