当前位置: 代码网 > it编程>编程语言>Asp.net > pandas如何计算移动平均值

pandas如何计算移动平均值

2024年09月10日 Asp.net 我要评论
pandas计算移动平均值本人遇到遇到一个任务,计算同月份合约当天各合约总持仓量的移动平均值。立刻写下了这个函数:group = df.groupby(['合约系列','date'])f = pd.d

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:如果没有特殊指定,所有数的权重是一样的

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com