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.590234Rolling [window=3,min_periods=1,center=False,axis=0]

1) 对整体聚合

您可以把一个聚合函数传递给 DataFrame,示例如下:

import pandas as pd
import numpy as npdf = 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.260827A         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

Python Pandas聚合函数相关推荐

  1. blankcount函数python,Python pandas常用函数详解

    本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...

  2. python pandas聚合_Python Pandas分组聚合的实现方法

    Pycharm 鼠标移动到函数上,CTRL+Q可以快速查看文档,CTR+P可以看基本的参数. apply(),applymap()和map() apply()和applymap()是DataFrame ...

  3. pandas 聚合函数agg

    今天看到pandas的聚合函数agg,比较陌生,平时的工作中处理数据的时候使用的也比较少,为了加深印象,总结一下使用的方法,其实还是挺好用的. DataFrame.agg(func,axis = 0, ...

  4. python pandas常用函数学习

    从网上看的一些资料学习一下,有的内容是直接从其他文章中粘贴过来的. pandas 有两个主要的数据结构:Series 和 DataFrame: 1. Series 是一个一维数组对象 ,类似于 Num ...

  5. python pandas rename函数_Python-pandas | 一些函数

    shift.diff.applymap和apply.pdcut和pd.qcut.groupby+agg聚合.sort_values.merge和concat.value_counts.any和all ...

  6. python——pandas——dropna()函数

    该函数主要用于滤除缺失数据. import pandas as pd import numpy as npfrom IPython.core.interactiveshell import Inter ...

  7. python pandas dataframe函数_Pandas的DataFrame列操作

    13. Pandas的DataFrame列操作 本章主要研究一下DataFrame数据结构如何修改.增删等操作. 13.1 rename修改列名字 对一个dataframe的数据使用rename函数后 ...

  8. python pandas常用函数_Python pandas常用函数详解

    df.duplicated() 返回各行是否是上一行的重复行 df.drop_duplicates() 删除重复行,如果需要按照列过滤,参数选填['col1', 'col2',-]df.fillna( ...

  9. pandas 聚合函数

    将对一列进行计算返回一个值 方法 描述 Series.all([axis, bool_only, skipna, level]) 是否全为True Series.any([axis, bool_onl ...

最新文章

  1. windows下 Source Monitor代码度量工具的使用
  2. 视频编解码之理论概述 和即时通信
  3. 一招一式攻克linux(五)
  4. 在DataTable中添加行和列数据
  5. Spring Boot 参考指南(使用NoSQL技术)
  6. 【干货】在Redis中设置了过期时间的Key怎么办?
  7. Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】
  8. Qt Creator 创建优化的3D场景
  9. oracle stream 主键,oracle stream配置向导
  10. IIS搭建网站遇到的问题
  11. c语言中常用符号,C语言中常用的符号.doc
  12. elementui :on-remove怎么用_绍兴【办公室绿化】怎么操作
  13. 汇编语言 王爽 第四版 第一章 检测点1.1
  14. PADS Layout 滴泪、敷铜和删除
  15. Nginx从入门到入坟(九)- Nginx静态资源如何防盗链
  16. 【DJ-ZBS2 DH-70L两档切换漏电继电器】
  17. 解决IOS微信SDK初始化失败
  18. python判定素数_素数判定python
  19. ViewPager写的三字经程序,外加三字经朗读,用了MediaPlayer
  20. 制药业中的自然语言处理(NLP)

热门文章

  1. RPMforge(Repoforge)源
  2. OSChina 周日乱弹 —— 钱不还,我就当你人不在了
  3. OpenStack与CloudStack
  4. IE浏览器打开网页提示安全证书过期或证书错误的解决方法
  5. AList软件的使用--已经直接在win上进行磁盘映射--修改数据源为mysql
  6. 建筑升降机司机证在哪里怎么报名考试报名条件是什么
  7. 电脑删除文件提示错误:0x80070091目录不是空的 无法删除的解决办法
  8. 为什么我的VS开发环境没有:解决方案资源管理器
  9. 使用removeChild动态删除节点注意
  10. 写一个简单的打谱程序(1)