python:pd.rolling_std函数结果与标准差计算器不同

时间:2017-07-04 07:44:46

标签: python-2.7 pandas standard-deviation

有数据框如下,我想计算关闭列:波动率,exaple window = 2,即两行的波动率。我

   Date      close
2010-06-09    3160.0
2010-06-10    3180.0
2010-06-11    3215.0
2010-06-14    3255.0

我使用了以下使用该函数的代码:

stdDeviation = pd.rolling_std(df['Close'],window=2)
stdDeviation.head(4)

结果是:

      Date
2010-06-09          NaN
2010-06-10    14.142136
2010-06-11    24.748737
2010-06-14    28.284271
Name: Close, dtype: float64

但用计算器https://en.wikipedia.org/wiki/Standard_deviation

计算标准偏差时

我找到了前两个数字:3160,3180,这两个数字的标准差是10,这与函数.pd.rolling_std计算的14.142136不同。

你能不能告诉我更多关于scroll_std函数的信息,详细介绍了这个函数的作用。为什么不同,我的问题是否有问题。谢谢!

1 个答案:

答案 0 :(得分:2)

pandas默认计算样本标准差。样本标准差的分母有一个修正因子,因此我们将平方和除以nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "13" 而不是n-1。 1这里是由于样本均值而失去的自由度。如果你想获得相同的结果,可以将n传递给rolling_std,结果会给你10个。

ddof=0