Pythonpandas中的std()函数—参数ddof的理解

Posted 旅途中的宽~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pythonpandas中的std()函数—参数ddof的理解相关的知识,希望对你有一定的参考价值。

在利用pandas进行数据分析时,有时需要计算某一列数据的标准差,我们常用std()函数来实现,但是一般都没有关注过里面的一个重要参数ddof,本文就来介绍一下这个参数的理解。

ddof参数的取值一般有两个,即ddof=0或者ddof=1

ddof=0时:

当我们的参数取ddof=0时,计算的是总体标准差,计算公式为:
∑ i = 1 n ( x i − x ^ ) 2 n \\sqrt\\frac\\sum \\limits_i=1^n(x_i-\\hatx)^2n ni=1n(xix^)2
其中, X = x 1 , x 2 , ⋯   , x n X=\\x_1,x_2,\\cdots,x_n\\ X=x1,x2,,xn x ^ \\hatx x^表示为数据 x x x的均值,计算公式为:
x ^ = ∑ i = 1 n x i n \\hatx=\\frac\\sum \\limits_i=1^nx_in x^=ni=1nxi
其中, n n n为总体个数。

ddof=1时:

当ddof=1时,计算的是样本的标准差,计算公式为:
∑ i = 1 n ( x i − x ^ ) 2 n − 1 \\sqrt\\frac\\sum \\limits_i=1^n(x_i-\\hatx)^2n-1 n1i=1n(xix^)2
字母的代表方式与上文一样,只不过这里的 n n n表示的是样本的个数。

举例说明

我们在实际应用中看不同的计算方式得到的结果:

首先展示我们的数据集:

import numpy as np
import pandas as pd
data = pd.read_excel('EXE5_1.xlsx')
data


我们分别考虑不同的ddof,并计算出标准差的数值:

std_ddof0 = np.std(data.iloc[:,1],ddof=0)
std_ddof0
40280.5706797213
std_ddof1 = np.std(data.iloc[:,1],ddof=1)
std_ddof1
41925.34721153412

可以明显的看出,ddof=1时,计算的数值偏大,是因为分母为 n − 1 n-1 n1

以上是关于Pythonpandas中的std()函数—参数ddof的理解的主要内容,如果未能解决你的问题,请参考以下文章

python pandas-将带有两个参数的函数应用于列

python pandas:将带有参数的函数应用于系列

如何对可变参数函数中的所有参数调用 std::forward ?

使用 std::vector 作为标头中的输入参数定义函数的原型

std::thread 中的参数。如何运作?

C++中,为啥函数参数不够也可以调用?而且函数模板定义中没有提供默认值。