Python Pandas作为常见的应用Python的一门工具,常常是作为聚合函数去进行使用的,那么,我们应该怎么去使用这类聚合函数呢?下面就具体的一类应用实例,下面给大家详细解答一下,大家要仔细的阅读哦。
Python Pandas聚合函数
在前一节,我们重点介绍了窗口函数。我们知道,窗口函数可以与聚合函数一起使用,聚合函数指的是对一组数据求总和、最大值、最小值以及平均值的操作,本节重点讲解聚合函数的应用。
应用聚合函数
首先让我们创建一个DataFrame对象,然后对聚合函数进行应用。
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,4),index=pd.date_range('12/14/2020',periods=5),columns=['A','B','C','D']) print(df) #窗口大小为3,min_periods最小观测值为1 r=df.rolling(window=3,min_periods=1) print(r)
输出结果:
A B C D
2020-12-14 0.941621 1.205489 0.473771-0.348169
2020-12-15-0.276954 0.076387 0.104194 1.537357
2020-12-16 0.582515 0.481999-0.652332-1.893678
2020-12-17-0.286432 0.923514 0.285255-0.739378
2020-12-18 2.063422-0.465873-0.946809 1.590234
Rolling[window=3,min_periods=1,center=False,axis=0]
1)对整体聚合
您可以把一个聚合函数传递给DataFrame,示例如下:
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,4),index=pd.date_range('12/14/2020',periods=5),columns=['A','B','C','D']) print(df) #窗口大小为3,min_periods最小观测值为1 r=df.rolling(window=3,min_periods=1) #使用aggregate()聚合操作 print(r.aggregate(np.sum))
输出结果:
A B C D
2020-12-14 0.133713 0.746781 0.499385 0.589799
2020-12-15-0.777572 0.531269 0.600577-0.393623
2020-12-16 0.408115-0.874079 0.584320 0.507580
2020-12-17-1.033055-1.185399-0.546567 2.094643
2020-12-18 0.469394-1.110549-0.856245 0.260827
A B C D
2020-12-14 0.133713 0.746781 0.499385 0.589799
2020-12-15-0.643859 1.278050 1.099962 0.196176
2020-12-16-0.235744 0.403971 1.684281 0.703756
2020-12-17-1.402513-1.528209 0.638330 2.208601
2020-12-18-0.155546-3.170027-0.818492 2.863051
2)对任意某一列聚合
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,4),index=pd.date_range('12/14/2020',periods=5),columns=['A','B','C','D']) #窗口大小为3,min_periods最小观测值为1 r=df.rolling(window=3,min_periods=1) #对A列聚合 print(r['A'].aggregate(np.sum))
输出结果:
2020-12-14 1.051501
2020-12-15 1.354574
2020-12-16 0.896335
2020-12-17 0.508470
2020-12-18 2.333732
Freq:D,Name:A,dtype:float64
3)对多列数据聚合
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,4),index=pd.date_range('12/14/2020',periods=5),columns=['A','B','C','D']) #窗口大小为3,min_periods最小观测值为1 r=df.rolling(window=3,min_periods=1) #对A/B两列聚合 print(r['A','B'].aggregate(np.sum))
输出结果:
A B
2020-12-14 0.639867-0.229990
2020-12-15 0.352028 0.257918
2020-12-16 0.637845 2.643628
2020-12-17 0.432715 2.428604
2020-12-18-1.575766 0.969600
4)对单列应用多个函数
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,4),index=pd.date_range('12/14/2020',periods=5),columns=['A','B','C','D']) #窗口大小为3,min_periods最小观测值为1 r=df.rolling(window=3,min_periods=1) #对A/B两列聚合 print(r['A','B'].aggregate([np.sum,np.mean]))
输出结果:
sum mean
2020-12-14-0.469643-0.469643
2020-12-15-0.626856-0.313428
2020-12-16-1.820226-0.606742
2020-12-17-2.007323-0.669108
2020-12-18-0.595736-0.198579
5)对不同列应用多个函数
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,4), index=pd.date_range('12/11/2020',periods=5), columns=['A','B','C','D']) r=df.rolling(window=3,min_periods=1) print(r['A','B'].aggregate([np.sum,np.mean]))
输出结果:
A B
sum mean sum mean
2020-12-14-1.428882-1.428882-0.417241-0.417241
2020-12-15-1.315151-0.657576-1.580616-0.790308
2020-12-16-2.093907-0.697969-2.260181-0.753394
2020-12-17-1.324490-0.441497-1.578467-0.526156
2020-12-18-2.400948-0.800316-0.452740-0.150913
6)对不同列应用不同函数
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(3,4), index=pd.date_range('12/14/2020',periods=3), columns=['A','B','C','D']) r=df.rolling(window=3,min_periods=1) print(r.aggregate({'A':np.sum,'B':np.mean}))
输出结果:
A B
2020-12-14 0.503535-1.301423
2020-12-15 0.170056-0.550289
2020-12-16-0.086081-0.140532
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128342.html
摘要:数据规整化清理转换合并重塑数据聚合与分组运算数据规整化清理转换合并重塑合并数据集可根据一个或多个键将不同中的行链接起来。函数根据样本分位数对数据进行面元划分。字典或,给出待分组轴上的值与分组名之间的对应关系。 本篇内容为整理《利用Python进行数据分析》,博主使用代码为 Python3,部分内容和书本有出入。 在前几篇中我们介绍了 NumPy、pandas、matplotlib 三个...
pandas其实汇集了python函数的一个数据库,主要是用来调用数据的,作为其中的聚合函数,那么,其中的函数agg的具体用法是怎么样的呢?下面就给大家详细的解答下。 今天看到pandas的聚合函数agg,比较陌生,平时的工作中处理数据的时候使用的也比较少,为了加深印象,总结一下使用的方法,其实还是挺好用的。 DataFrame.agg(func,axis=0,*args,**kwargs...
摘要:全栈数据之门前言自强不息,厚德载物,自由之光,你是我的眼基础,从零开始之门文件操作权限管理软件安装实战经验与,文本处理文本工具的使用家族的使用综合案例数据工程,必备分析文件探索内容探索交差并补其他常用的命令批量操作结语快捷键,之门提高效率光 showImg(https://segmentfault.com/img/bVK0aK?w=350&h=350); 全栈数据之门 前言 自强不息,...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 685·2023-01-14 10:48
阅读 1888·2023-01-14 10:34
阅读 892·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02