在多索引Pandas Dataframe中滚动窗口

时间:2017-01-03 13:39:42

标签: python python-2.7 python-3.x pandas

我有一个多索引数据框,如下所示:

                      LAST PRICE     HIGH      LOW  PX CLOSE 1D  
date                                                                           
2010-01-04 SPX Index      1132.99  1133.87  1116.56      1115.10       
           CL1 Comdty       81.51    81.79    79.66        79.36         
2010-01-05 SPX Index      1136.52  1136.63  1129.66      1132.99       
           CL1 Comdty       81.77    82.00    80.95        81.51         
2010-01-06 SPX Index      1137.14  1139.19  1133.95      1136.52       
           CL1 Comdty       83.18    83.52    80.85        81.77       
2010-01-07 SPX Index      1141.69  1142.46  1131.32      1137.14      
           CL1 Comdty       82.66    83.36    82.26        83.18       
2010-01-08 SPX Index      1144.98  1145.39  1136.22      1141.69        
           CL1 Comdty       82.75    83.47    81.80        82.66   

我想为“最后价格”添加具有简单和指数移动平均线的新列。我如何做到这一点,以便每个底层的计算是正确的?我相信我需要使用groupby,但我无法正确使用语法。

提前致谢

1 个答案:

答案 0 :(得分:2)

请参阅ewm documentation了解更多信息

使用unstack

df['PX CLOSE 1D'].unstack().ewm(halflife=1).mean()

            CL1 Comdty    SPX Index
date                               
2010-01-04   79.360000  1115.100000
2010-01-05   80.793333  1127.026667
2010-01-06   81.351429  1132.451429
2010-01-07   82.326667  1134.952000
2010-01-08   82.498710  1138.429677