pandas.rolling_std() first value is nan · Issue #1884 · pandas-dev/pandas (original) (raw)
The window is 3, but we want a std at min_periods=1
. The one-period standard deviation is trivially 0.
In [28]: pandas.rolling_std(np.array([1,2,3,4,5], dtype='double'), 3, min_periods=1)
Out[28]: array([ nan, 0.70710678, 1. , 1. , 1. ])
The pathological case:
In [29]: pandas.rolling_std(np.array([1,2,3,4,5], dtype='double'), 1, min_periods=1)
Out[29]: array([ nan, nan, nan, nan, nan])
Maybe it's because pandas is taking the unbiased std for N-1
where N = 1
, so it's dividing by zero?