深入解析pandas数据聚合和重组_第1页
深入解析pandas数据聚合和重组_第2页
深入解析pandas数据聚合和重组_第3页
深入解析pandas数据聚合和重组_第4页
深入解析pandas数据聚合和重组_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第深入解析pandas数据聚合和重组目录1GroupBy技术1.1简介1.3选取一个或一组列1.4通过字典或Series进行分组1.5利用函数进行分组2数据聚合2.1简介2.1面向列的多函数应用2.2以无索引的方式返回聚合数据介绍pandas数据聚合和重组的相关知识,仅供参考。

1GroupBy技术

1.1简介

简介:根据一个或多个键进行分组,每一组应用函数,再进行合并

分组的键有多种形式:

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

实例:

importnumpyasnp

importpandasaspd

importmatplotlib.pyplotasplt

frompandasimportSeries,DataFrame

df=DataFrame({'key1':list('aabba'),'key2':['one','two','one','two','one'],\

'data1':np.random.randn(5),'data2':np.random.randn(5)})

#根据key1进行分组,并计算data1的均值。

#注意下面的方式,取出来进行分组,而不是在DataFrame中分组,这种方式很灵活

#可以看到这是一个GroupBy对象,具备了应用函数的基础

#这个过程是将Series进行聚合,产生了新的Series

grouped=df['data1'].groupby(df['key1'])

print(grouped,'\n')

注:

取出来进行分组,而不是在DataFrame中分组分组键中的缺失值被排除在外1.2对分组进行迭代

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

groupby默认在axis=0上进行分组,但可以设置在任何轴上分组

1.3选取一个或一组列

对于由DataFrame产生的GroupBy对象,如果用一个或一组列名进行索引,可实现选取部分列进行聚合的目的,即下面语法效果相同。

1.4通过字典或Series进行分组

假设已经知道列的分组方式,现在需要利用这个信息进行分组统计。

下面为groupby传入一个已知信息的字典:

相当于将每一个列重设名,再按新的名字进行求和。

Series也有这样的功能,被看作一个固定大小的映射,可以用Series作为分组键,pandas会自动检查对齐。

1.5利用函数进行分组

将函数、数组、字典、Series混用也ok,因为最终都会转换为数组

2数据聚合

2.1简介

简介:

这里的数据聚合是说任何能够从数组产生标量值的过程常见的聚合运算都有就地计算数据集统计信息的优化实现。当然不止这些,可以用自己定义的运算,还可以调用分组对象上已经定义好的任何方法。

例:quantile可计算Series或DataFrame列的样本分位数。

对于自己定义的聚合函数,只需将其传入aggregate或agg即可:

有些方法(describe)也可应用

自定义函数比经过优化的函数要慢得多,这是因为在构造中间分组数据块时存在非常大的开销(函数调用、数据重排等)

可使用的函数:

2.1面向列的多函数应用

有时候需要对不同的列应用不同的函数,或者对一列应用不同的函数

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

上面有个问题就是列名是自动给出的,以函数名为列名,若传入元组(name,function)组成的列表,就会自动将第一个元素作为列名

对两列都应用functions:

得到的结果的列名是层次化索引,可以直接用外层索引选取数据:

如果想对不同的列应用不同的函数,具体的办法是向agg传入一个从列映射到函数的字典:

2.2以无索引的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论