Pandas Dataframe.describe():哪种标准差?
使用Python的Pandas库时,Dataframe.describe()函数可以打印出数据集的标准差。不过,文档里没有说明这个标准差是指“未修正”的标准差还是“修正”的标准差。
有没有人能告诉我它返回的是哪种标准差?
2 个回答
4
DataFrame.describe()
这个函数会调用 Series.std()
来计算标准差。正如文档中所说,
它会返回所请求轴上的无偏标准差。
默认情况下是用 N-1 来进行归一化。这个可以通过 ddof 参数来改变。
所以,describe()
返回的标准差实际上是“经过修正的样本标准差”。
8
这是修正后的样本标准差。
你可以通过一个简单的序列来验证这一点,并应用相关的公式:
In [11]: s = pd.Series([1, 2])
In [12]: s.std()
Out[12]: 0.70710678118654757
In [13]: from math import sqrt
....: sqrt(0.5)
Out[13]: 0.7071067811865476
还有修正样本标准差的公式:
In [14]: sqrt(1./(len(s)-1) * ((s - s.mean()) ** 2).sum())
Out[14]: 0.7071067811865476