在pandas中将滚动平均列添加到多索引中

2024-10-06 08:00:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有股票名称和股票数据的多重指数。它有65种不同的股票,日期持续5年,所以部分DF看起来像这样

                            High    Low Open    Px_last    Volume
                   Date         
SPOM US equity  12/31/2012  0.4575  0.2925  0.4575  0.3975  8890
                 1/1/2013   0.4575  0.2925  0.4575  0.3975  8890
                 1/2/2013   0.3975  0.3225  0.3975  0.3225  3400
                 1/3/2013   0.3738  0.28    0.34    0.29    48933
                 1/4/2013   0.4     0.3175  0.36    0.3175  3610
                 1/7/2013   0.47    0.2863  0.3      0.46   61854
                 1/8/2013   0.54    0.39    0.48    0.4575  86644

我想添加一个10维滚动平均列,我看了其他一些帖子,比如这篇文章stackoverflow.com/questions/38334832/rolling-各组的平均值。我使用了这段代码,它没有抛出任何错误,但问题是10D-MA列显示了带有nan的整个数据帧。它不计算任何数字。有谁能告诉我我做错了什么,为什么没有产生预期的结果

^{pr2}$

Tags: 数据dfdateopen指数low股票last
1条回答
网友
1楼 · 发布于 2024-10-06 08:00:34

IIUC公司

df['10D']=df.groupby(level=0).Px_last.apply(lambda x: x.rolling(10,min_periods=1).mean())
df
Out[93]: 
                     High     Low    Open  Px_last  Volume       10D
       Date                                                         
equity 12/31/2012  0.4575  0.2925  0.4575   0.3975    8890  0.397500
       1/1/2013    0.4575  0.2925  0.4575   0.3975    8890  0.397500
       1/2/2013    0.3975  0.3225  0.3975   0.3225    3400  0.372500
       1/3/2013    0.3738  0.2800  0.3400   0.2900   48933  0.351875
       1/4/2013    0.4000  0.3175  0.3600   0.3175    3610  0.345000
       1/7/2013    0.4700  0.2863  0.3000   0.4600   61854  0.364167
       1/8/2013    0.5400  0.3900  0.4800   0.4575   86644  0.377500

相关问题 更多 >