我正在尝试按照本教程来计算SMA:https : //www.datacamp.com/community/tutorials/moving-averages-in-pandas
我想获取所有值的SMA,但我只得到5。我要获取其值的框架中有17个值。如果增加滚动窗口,我将完全没有获得SMA的任何值,那是为什么呢?
感谢您的帮助,因为我是熊猫的新手
def example(self):
frame = {'date': ['2017-06-19', '2017-06-16', '2017-06-15', '2017-06-14', '2017-06-13', '2017-06-12', '2017-06-09', '2017-06-08', '2017-06-07', '2017-06-06', '2017-06-05', '2017-06-02', '2017-06-01', '2017-05-31'], 'indexes': ['146.3400', '142.2700', '144.2900', '145.1600', '146.5900', '145.4200', '148.9800', '154.9900', '155.3700', '154.4500', '153.9300', '155.4500', '153.1800', '152.7600']}
df = pd.DataFrame(frame)
df['SMA'] = df.iloc[:, 1].rolling(window=4).mean()
print(df.head())
输出:
date indexes SMA
0 2017-06-19 146.3400 NaN
1 2017-06-17 142.2700 NaN
2 2017-06-16 144.2900 NaN
3 2017-06-15 145.1600 144.5150
4 2017-06-14 146.5900 144.5775
在计算移动平均值时,您需要n
为其提供样本,即移动窗口的大小。既然设置了window=4
,则需要4个样本来计算平均值。话虽如此,这些NaN
值仅表明在这一点上,没有足够的数据来计算窗口大小= 4的MA。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句