本文介绍了在 pandas 数据框上创建滚动自定义EWMA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用以下df的最后13个值创建具有以下衰落= 1-ln(2)/3的滚动EWMA:
I am trying to create a rolling EWMA with the following decay= 1-ln(2)/3 on the last 13 values of a df such has :
factor
Out[36]:
EWMA
0 0.043
1 0.056
2 0.072
3 0.094
4 0.122
5 0.159
6 0.207
7 0.269
8 0.350
9 0.455
10 0.591
11 0.769
12 1.000
我有每月df这样的回报:
I have a df of monthly returns like this :
change.tail(5)
Out[41]:
date
2016-04-30 0.033 0.031 0.010 0.007 0.014 -0.006 -0.001 0.035 -0.004 0.020 0.011 0.003
2016-05-31 0.024 0.007 0.017 0.022 -0.012 0.034 0.019 0.001 0.006 0.032 -0.002 0.015
2016-06-30 -0.027 -0.004 -0.060 -0.057 -0.001 -0.096 -0.027 -0.096 -0.034 -0.024 0.044 0.001
2016-07-31 0.063 0.036 0.048 0.068 0.053 0.064 0.032 0.052 0.048 0.013 0.034 0.036
2016-08-31 -0.004 0.012 -0.005 0.009 0.028 0.005 -0.002 -0.003 -0.001 0.005 0.013 0.003
我只是想将这种滚动式EWMA应用于每列.我知道熊猫有EWMA方法,但我不知道如何传递正确的1-ln(2)/3因子.
I am just trying to apply this rolling EWMA to each columns. I know that pandas has a EWMA method but I can't figure out how to pass the right 1-ln(2)/3 factor.
帮助将不胜感激!谢谢!
help would be appreciated! thanks!
推荐答案
在mean()
df.ewm(halflife=1 - np.log(2) / 3).mean()
这篇关于在 pandas 数据框上创建滚动自定义EWMA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!