为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫方差和标准偏差结果与手动计算不同

熊猫方差和标准偏差结果与手动计算不同

斯蒂芬大帝 2021-07-02 14:54:26
我正在尝试使用 Pandas 计算均值、方差和 SD。但是,手动计算与pandas输出不同。使用熊猫有什么我遗漏的吗?附上xl截图以供参考import pandas as pddg_df = pd.DataFrame(            data=[600,470,170,430,300],            index=['a','b','c','d','e'])print(dg_df.mean(axis=0)) # 394.0 matches with manual calculationprint(dg_df.var())        # 27130.0 not matching with manual calculation 21704print(dg_df.std(axis=0))  # 164.71187 not matching with manual calculation 147.32
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

标准差的定义不止一种。您正在计算 Excel 的等效项STDEV.P,其描述为:“根据整个人口计算标准偏差......”。如果您需要 Excel 中的样本标准偏差,请使用STDEV.S.

pd.DataFrame.std默认情况下假定为 1个自由度,也称为样本标准差。

numpy.std默认情况下假定自由度为0 ,也称为总体标准差。

请参阅贝塞尔校正以了解样本和总体之间的差异。

您还可以ddof=0使用 Pandas std/var方法指定:

dg_df.std(ddof=0)
dg_df.var(ddof=0)


查看完整回答
反对 回复 2021-07-06
?
慕村225694

TA贡献1880条经验 获得超4个赞

您也可以使用 dg_df.describe(),然后获得下一个数据帧。也许更直观


count   5.00000

mean    394.00000

std 164.71187

min 170.00000

25% 300.00000

50% 430.00000

75% 470.00000

max 600.00000

你可以得到正确的数据,比如 dg_df.describe().loc['count']


查看完整回答
反对 回复 2021-07-06
  • 3 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号