Python Pandas聚合函数的应用示例

目录
  • Python Pandas聚合函数
  • 应用聚合函数
    • 1) 对整体聚合
    • 2) 对任意某一列聚合
    • 3) 对多列数据聚合
    • 4) 对单列应用多个函数
    • 5) 对不同列应用多个函数
    • 6) 对不同列应用不同函数
  • 总结

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

总结

到此这篇关于Python Pandas聚合函数的文章就介绍到这了,更多相关Python Pandas聚合函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python Pandas中数据的合并与分组聚合

    目录 一.字符串离散化示例 二.数据合并 2.1 join 2.2 merge 三.数据的分组和聚合 四.索引 总结 一.字符串离散化示例 对于一组电影数据,我们希望统计电影分类情况,应该如何处理数据?(每一个电影都有很多个分类) 思路:首先构造一个全为0的数组,列名为分类,如果某一条数据中分类出现过,就让0变为1 代码: # coding=utf-8 import pandas as pd from matplotlib import pyplot as plt import numpy as

  • python pandas分组聚合详细

    目录 python pandas分组聚合 1.环境 2.分组 3.序列分组 4.多列分组 5.索引分组 7.聚合 8.单函数对多列 9.多函数对多列 python pandas分组聚合 1.环境 python3.9 win10 64bit pandas==1.2.1 groupby方法是pandas中的分组方法,对数据框采用groupby方法后,返回的是DataFrameGroupBy对象,一般分组操作后会进行聚合操作. 2.分组 import pandas as pd import numpy

  • Python Pandas分组聚合的实现方法

    Pycharm 鼠标移动到函数上,CTRL+Q可以快速查看文档,CTR+P可以看基本的参数. apply(),applymap()和map() apply()和applymap()是DataFrame的函数,map()是Series的函数. apply()的操作对象是DataFrame的一行或者一列数据,applymap()是DataFrame的每一个元素.map()也是Series中的每一个元素. apply()对dataframe的内容进行批量处理, 这样要比循环来得快.如df.apply(

  • Python Pandas聚合函数的应用示例

    目录 Python Pandas聚合函数 应用聚合函数 1) 对整体聚合 2) 对任意某一列聚合 3) 对多列数据聚合 4) 对单列应用多个函数 5) 对不同列应用多个函数 6) 对不同列应用不同函数 总结 Python Pandas聚合函数 在前一节,我们重点介绍了窗口函数.我们知道,窗口函数可以与聚合函数一起使用,聚合函数指的是对一组数据求总和.最大值.最小值以及平均值的操作,本节重点讲解聚合函数的应用. 应用聚合函数 首先让我们创建一个 DataFrame 对象,然后对聚合函数进行应用.

  • Python pandas自定义函数的使用方法示例

    本文实例讲述了Python pandas自定义函数的使用方法.分享给大家供大家参考,具体如下: 自定义函数的使用 import numpy as np import pandas as pd # todo 将自定义的函数作用到dataframe的行和列 或者Serise的行上 ser1 = pd.Series(np.random.randint(-10,10,5),index=list('abcde')) df1 = pd.DataFrame(np.random.randint(-10,10,(

  • Python pandas常用函数详解

    本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime import re 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名,0,1,2,3... names=['A', 'B', 'C'...] 自定义列名 index_col='

  • Python Pandas常用函数方法总结

    初衷 NumPy.Pandas.Matplotlib.SciPy 等可以说是最最最常用的 Python 库了.我们在使用 Python 库的时候,通常会遇到两种情况.以 Pandas 举例. 我想对 Pandas 数据结构的数据实现某种操作,但是我不知道或者说在我的印象里似乎已经不记得是否有这样的函数方法,如果有,又该用哪个方法呢? 我想实现某种数据操作,我记得我用过或者见过某个函数可以实现这个功能,但是我死活想不起来那个函数叫啥了.或者,我想起来了哪个函数可以实现这个功能,但是我想知道是否有更

  • Python中join函数简单代码示例

    本文简述的是string.join(words[, sep]),它的功能是把字符串或者列表,元组等的元素给拼接起来,返回一个字符串,和split()函数与正好相反,看下面的代码理解. 首先展示下结果吧! 代码分享: a=["豫","N","C8","C89"] b=("豫","N","C8","C89") c="zhang" a

  • python之随机数函数的实现示例

    前言 这是俺写的第一篇关于python的博客,分享一下我所整合的python中的随机数函数,就当作是自己的一个笔记,也可以供像我一样的python入门新手小白参考学习.希望可以记录下自己的学习过程. 一.random() 生成一个(0,1)指定范围内的随机浮点数 运行结果如下: 二.uniform(x,y) 生成一个指定范围([min(x,y) max(x,y)])内的随机浮点数 运行结果如下: 三.randint() 生成一个指定范围([x,y])内的整数 运行结果如下: 四.randrang

  • python高阶函数使用教程示例

    目录 一.高阶函数 函数定义 函数名可作为返回值.也可作为参数 (1)函数名作为参数 (2)函数名作为返回值 二.常用的高阶函数 (1)map(function,iterable) (2)filter(function, iterable) (3)reduce(function, iterable) 一.高阶函数 函数定义 python中,函数名是变量,下方这个method函数名看成变量,指向一个计算的函数!因此函数名其实就是指向函数的变量,故变量可指向函数: 变量可指向函数,且函数的变量可接受

  • Python自定义聚合函数merge与transform区别详解

    1.自定义聚合函数,结合agg使用 2. 同时使用多个聚合函数 3. 指定某一列使用某些聚合函数 4.merge与transform使用 import pandas as pd import numpy as np np.random.seed(1) dict_data = { 'k1': ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'], 'k2': ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'D'], 'data1': np.ra

  • mongoDB中聚合函数java处理示例详解

    1.问题 最近在做项目的时候碰到一个对mongoDB的数据处理,从MongoDB中拿到内嵌文档的时间排序的list. 一开始考虑到直接对mongoDB中的属性排序,后面发现属性存在内嵌文档中,所以处理中需要用到聚合函数. 思考 (key)解决这个问题的过程让我学到很多,发现自己在解决一个问题不仅查找问题的姿势不对,浪费太多时间.而且在碰到问题之后,应该多看看解决办法,甚至解决了之后要去思考问题,回顾问题.而不是像以前一样,解决问题了就万事大吉,抛之脑后. 2.解决 需要对document中的一个

  • 在Python中实现函数重载的示例代码

    假设你有一个函数connect,它有一个参数address,这个参数可能是一个字符串,也可能是一个元组.例如: connect('123.45.32.18:8080') connect(('123.45.32.18', 8080)) 你想在代码里面兼容这两种写法,于是你可能会这样写代码: def connect(address): if isinstance(address, str): ip, port = address.split(':') elif isinstance(address,

随机推荐