pandas如何计算移动平均值

 更新时间:2024年09月10日 16:10:41   作者:神出鬼没,指的就是我!  
在处理金融数据分析时,常需计算移动平均值。遇到数据不足导致结果为NAN问题,可使用pandas中rolling函数的min_periods参数。设置min_periods=1即可解决,它允许窗口中的非空观测值少于窗口大小时也能计算均值,确保数据不足时也能得出结果

pandas计算移动平均值

本人遇到遇到一个任务,计算同月份合约当天各合约总持仓量的移动平均值。

立刻写下了这个函数:

group = df.groupby(['合约系列','date'])
f = pd.DataFrame(group['持仓量'].sum().rolling(20).mean())

上交后,提出要求,不行,这个数据不行,存在一些数据,因为不足20天,导致结果为NAN。

一开始没想到思路,然后就问问群里的大佬,大佬给的第一个建议,写个功能函数。但是因为数据比较复杂,非连续数据,光是分类就很难,就继续询问。

直到一位大佬给了个答案:

group = df.groupby(['合约系列','date'])
f = pd.DataFrame(group['持仓量'].sum().rolling(20,min_periods = 1).mean())

min_periods:#表示窗口最少包含的观测值为1

意味着数据不满20天的,自动有一天算一天,计算均值。如第19天数据,此时显示的结果就是前面19天的均值。

pandas求滑动平均值

df.rolling(3, center=True).mean()

如果求最小值、最大值、求和等,可以改变最后面的函数,比如

df.rolling(3, center=True).min()
df.rolling(3, center=True).max()
df.rolling(3, center=True).sum()

其他参数:

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
  • window:选几个数求滑动平均值
  • center:true-以当前数为中心
  • win_type:如果没有特殊指定,所有数的权重是一样的

总结

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

相关文章

  • Python列表去重的几种方法整理

    Python列表去重的几种方法整理

    这篇文章介绍了Python列表去重的几种方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • python之pygame模块实现飞机大战完整代码

    python之pygame模块实现飞机大战完整代码

    这篇文章主要为大家详细介绍了python之pygame模块实现飞机大战完整代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Pycharm无法使用已经安装Selenium的解决方法

    Pycharm无法使用已经安装Selenium的解决方法

    今天小编就为大家分享一篇Pycharm无法使用已经安装Selenium的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python3.x+迅雷x 自动下载高分电影的实现方法

    Python3.x+迅雷x 自动下载高分电影的实现方法

    这篇文章主要介绍了Python3.x+迅雷x 自动下载高分电影的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python提取网页中超链接的方法

    Python提取网页中超链接的方法

    很多人在一开始学习Python,会打算用作爬虫开发。既然要做爬虫,首先就要抓取网页,并且从网页中提取出超链接地址。这篇文章给大家分享一个简单的方法,有需要的可以参考借鉴。
    2016-09-09
  • Python爬取qq空间说说的实例代码

    Python爬取qq空间说说的实例代码

    这篇文章主要介绍了Python爬取qq空间说说的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • 对Python 窗体(tkinter)树状数据(Treeview)详解

    对Python 窗体(tkinter)树状数据(Treeview)详解

    今天小编就为大家分享一篇对Python 窗体(tkinter)树状数据(Treeview)详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 通过Python实现Payload分离免杀过程详解

    通过Python实现Payload分离免杀过程详解

    这篇文章主要介绍了通过Python实现Payload分离免杀过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

    python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法,需要的朋友可以参考下
    2020-02-02
  • python 实现单通道转3通道

    python 实现单通道转3通道

    今天小编就为大家分享一篇python 实现单通道转3通道,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论