本文介绍了在 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-18 21:11