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

我正在尝试使用 Pandas 计算均值、方差和 SD。但是,手动计算与pandas输出不同。使用熊猫有什么我遗漏的吗?附上xl截图以供参考

http://img1.mukewang.com/60e41b110001b99605760163.jpg

import pandas as pd


dg_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 calculation

print(dg_df.var())        # 27130.0 not matching with manual calculation 21704

print(dg_df.std(axis=0))  # 164.71187 not matching with manual calculation 147.32


斯蒂芬大帝
浏览 290回答 3
3回答

慕少森

标准差的定义不止一种。您正在计算 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)

慕村225694

您也可以使用 dg_df.describe(),然后获得下一个数据帧。也许更直观count   5.00000mean    394.00000std 164.71187min 170.0000025% 300.0000050% 430.0000075% 470.00000max 600.00000你可以得到正确的数据,比如 dg_df.describe().loc['count']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python