Pandas Dataframe.describe():哪种标准差?

6 投票
2 回答
5392 浏览
提问于 2025-04-20 09:27

使用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

撰写回答