关于数据分析之滚动窗口pandas.DataFrame.rolling方法

 更新时间:2024年09月10日 09:25:43   作者:Efred.D  
Pandas库中的rolling方法是数据处理中常用的功能,它允许用户对数据进行滚动窗口(滑动窗口)操作,通过指定窗口大小,可以使用不同的聚合函数对窗口内的数据进行计算,例如最大值、最小值、平均值、中位数等,此外,rolling方法还可以计算方差、标准差、偏度、峰度

本文使用pandas 1.3.5 , python 3, numpy 1.22.0库

前言

pandas.DataFrame.rolling方法就是SQL中的 group by方法

唯一一点区别就是rolling方法的分组不是一成不变的

而是随着窗口的移动而不停更新新的分组

rolling使用公式

pandas.DataFrame.rolling(window = ).聚合函数

【注:rolling方法是向前取数据!!!】

聚合函数总结如下:

  • max 最大值
  • min 最小值
  • mean 平均值
  • median 中位数
  • sum 求和
  • var 方差
  • std 标准差
  • skew 三阶矩(又叫偏度,用于描述一组数据分布的对称性)
  • kurt 四截距 (又叫峰度, 用于描述一组数据在均值附近分布的集中度)
  • cov 协方差
  • corr 相关系数(对不同单位敏感性强;通常使用pearson相关系数,该系数对不同单位脱敏)
  • quantile 百分数

【注:scipy.stats的skew和kurtosis方法和 pandas中的skew和kurt方法计算算法不同】

python实现

比如,我想分别以2和4为滑动窗口,计算dataFrame格式数据“C”列的和,并分别以“D”和 “E”命名

代码如下,

import pandas as pd
import numpy as np
np.random.seed(0)
date_DataFrame1 = pd.DataFrame(np.random.randn(10,3), index = pd.date_range("2020-05-01", periods = 10), columns = ["A","B","C"])
date_DataFrame1["D"] = date_DataFrame1["C"].rolling(window = 2).sum()
date_DataFrame1["E"] = date_DataFrame1["C"].rolling(window = 4).sum()

结果如下,

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • django 快速启动数据库客户端程序的方法示例

    django 快速启动数据库客户端程序的方法示例

    这篇文章主要介绍了django 快速启动数据库客户端程序的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python Pandas读取Excel日期数据的异常处理方法

    Python Pandas读取Excel日期数据的异常处理方法

    Excel文件是传统的数据格式,但面对海量数据时,用编程的方法来处理数据更有优势,下面这篇文章主要给大家介绍了关于Python Pandas读取Excel日期数据的异常处理方法,需要的朋友可以参考下
    2022-02-02
  • Pygame Time时间控制的具体使用详解

    Pygame Time时间控制的具体使用详解

    pygame.time 时间控制模块,是 Pygame 中使用频率较高的模块,其主要功能是管理时间和游戏帧数率,本文就来详细的介绍一下,感兴趣的可以了解一下
    2021-11-11
  • python中dir()与__dict__属性的区别浅析

    python中dir()与__dict__属性的区别浅析

    这篇文章主要给大家介绍了关于python中dir()与__dict__属性的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • python excel多行合并的方法

    python excel多行合并的方法

    这篇文章主要介绍了python excel多行合并的方法,帮助大家更好的利用python处理excel表格,感兴趣的朋友可以了解下
    2020-12-12
  • PyQt5中QCommandLinkButton的详细教程与应用实战

    PyQt5中QCommandLinkButton的详细教程与应用实战

    在PyQt5中,QCommandLinkButton是一个特殊的按钮控件,它最初在Windows Vista中引入,并因其独特的外观和功能在GUI应用程序中得到了广泛应用,本教程将结合实际案例,详细介绍QCommandLinkButton在PyQt5中的用法,需要的朋友可以参考下
    2024-07-07
  • Pandas 筛选和删除目标值所在的行的实现

    Pandas 筛选和删除目标值所在的行的实现

    本文主要介绍了Pandas筛选和删除目标值所在的行的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 使用Python实现文字转语音并播放功能

    使用Python实现文字转语音并播放功能

    这篇文章主要给大家介绍了使用Python实现文字转语音并播放功能,文中通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • Python  序列化反序列化和异常处理的问题小结

    Python  序列化反序列化和异常处理的问题小结

    这篇文章主要介绍了Python 序列化反序列化和异常处理,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • python应用Axes3D绘图(批量梯度下降算法)

    python应用Axes3D绘图(批量梯度下降算法)

    这篇文章主要为大家详细介绍了python应用Axes3D绘图,批量梯度下降算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论