【Python】pandas中的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-\hat{x})^2}{n}} ni=1n(xix^)2
其中, X = { x 1 , x 2 , ⋯   , x n } X=\{x_1,x_2,\cdots,x_n\} X={x1,x2,,xn} x ^ \hat{x} x^表示为数据 x x x的均值,计算公式为:
x ^ = ∑ i = 1 n x i n \hat{x}=\frac{\sum \limits_{i=1}^nx_i}{n} 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-\hat{x})^2}{n-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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值