Closed
Description
Note that for a constant series, Series.skew()
returns 0
, while rolling/expanding_skew()
return NaN
.
In [532]: s = Series([1]*4)
In [533]: s.skew()
Out[533]: 0
In [534]: expanding_skew(s)
Out[534]:
0 NaN
1 NaN
2 NaN
3 NaN
dtype: float64
In [535]: rolling_skew(s, 4)
Out[535]:
0 NaN
1 NaN
2 NaN
3 NaN
dtype: float64
While rolling/expanding_kurt()
similarly return NaN
for a constant series, Series.kurt()
produces an error.
In [541]: expanding_kurt(s)
Out[541]:
0 NaN
1 NaN
2 NaN
3 NaN
dtype: float64
In [542]: rolling_kurt(s, 4)
Out[542]:
0 NaN
1 NaN
2 NaN
3 NaN
dtype: float64
In [543]: s.kurt()
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-543-e41f2ec435bd> in <module>()
----> 1 s.kurt()
C:\Python34\lib\site-packages\pandas\core\generic.py in stat_func(self, axis, skipna, level, numeric_only, **kwargs)
3783 skipna=skipna)
3784 return self._reduce(f, axis=axis,
-> 3785 skipna=skipna, numeric_only=numeric_only)
3786 stat_func.__name__ = name
3787 return stat_func
C:\Python34\lib\site-packages\pandas\core\series.py in _reduce(self, op, axis, skipna, numeric_only, filter_type, **kwds)
2007 filter_type=None, **kwds):
2008 """ perform a reduction operation """
-> 2009 return op(_values_from_object(self), skipna=skipna, **kwds)
2010
2011 def _reindex_indexer(self, new_index, indexer, copy):
C:\Python34\lib\site-packages\pandas\core\nanops.py in _f(*args, **kwargs)
46 'this dtype'.format(f.__name__.replace('nan',
47 '')))
---> 48 return f(*args, **kwargs)
49 return _f
50
C:\Python34\lib\site-packages\pandas\core\nanops.py in nankurt(values, axis, skipna)
504 D = _zero_out_fperr(D)
505
--> 506 result = (((count * count - 1.) * D / (B * B) - 3 * ((count - 1.) ** 2)) /
507 ((count - 2.) * (count - 3.)))
508 if isinstance(result, np.ndarray):
ZeroDivisionError: float division by zero