码迷,mamicode.com
首页 > 其他好文 > 详细

数据聚合与分组运算

时间:2019-04-27 00:25:11      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:min   组成   对象   函数应用   应用   就会   组合   映射   特殊   

一、GroupBy技术

 

分组运算的过程可以由拆分-应用-合并描述。

利用df.groupby()进行分组操作

1、对分组进行迭代

GroupBy对象支持迭代,可以产生一组二元元组(由分组名(可能为组合)和数据块组成)。对分出的数据片段可以做任何操作,例如将其做成一个字典。groupby默认是在axis=0上进行分组的,通过设置可以在任何其他轴上进行分组,例如还可以根据dtypes对列进行分组。

2、选取一个或一组列

对于由DataFrame产生的GroupBy对象,如果用一个或一组列名对其进行索引,就能实现选取部分列进行聚合的目的。这种索引操作所返回的对象是一个已分组的DataFrame(如果传入的是列表或数组,如df.groupby(‘key‘)[[‘data‘]])或已分组的Series(如果传入的是标量形式的单个列名,如df.groupby(‘key‘)[‘data‘])。

3、通过字典或Series进行分组

4、通过函数进行分组

可以将函数跟数组、列表、字典、Series混合使用。

5、根据索引级别分组

层次化索引数据集能够根据索引级别进行聚合,通过level关键字传入级别编号或名称即可。

二、数据聚合

聚合是指任何能够从数组产生标量值的数据转换过程。可以使用已有的聚合函数,如mean/count/min/sum等;也可以自己定义聚合函数,只需将其传入aggregate或agg方法。

1、面向列的多函数应用

对于不同的列可以使用不同的聚合函数,也可以一次应用多个函数。

如果传入一组函数或函数名,得到的DataFrame的列就会以相应的函数命名。

如果传入的是(name,function)元组组成的列表,则各元组第一个元素为列名。

对不同的列应用不同的函数,是向agg传入一个从列名映射到函数的字典。

2、以“无索引”的形式返回聚合数据

三、分组级运算和转换

本节介绍transform和apply方法。

1、apply:一般性的“拆分-应用-合并”

2、分位数和桶分析

四、透视表和交叉表

交叉表是一种用于计算分组频率的特殊透视表。

数据聚合与分组运算

标签:min   组成   对象   函数应用   应用   就会   组合   映射   特殊   

原文地址:https://www.cnblogs.com/zhenpengwang/p/10777221.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!