Pandas 标准差奇迹

Pandas standard deviation miracle

这是我的代码:

import pandas as pd
df = pd.DataFrame({'Test': [861166021755746, 861166021755746, 861166021755746]})
print(df.describe())

这是输出(请注意 std 的值):

Test
count  3.000000e+00
mean   8.611660e+14
std    1.186328e+07
min    8.611660e+14
25%    8.611660e+14
50%    8.611660e+14
75%    8.611660e+14
max    8.611660e+14

std 的正确值为零,因为所有三个数字都相同。

现在我将我的数据框放在上面并将第一个数字 8 替换为数字 9

df = pd.DataFrame({'Test': [961166021755746, 961166021755746, 961166021755746]})
print(df.describe())

现在的输出是(请注意标准编号):

Test
count  3.000000e+00
mean   9.611660e+14
std    0.000000e+00
min    9.611660e+14
25%    9.611660e+14
50%    9.611660e+14
75%    9.611660e+14
max    9.611660e+14

我是找到了神奇的数字还是发生了什么事?

此问题确实是一个与方差计算错误相关的错误,已在版本 0.17.0 中解决。如果您使用任何以前的版本,您应该将其更新到更新的版本,或者按照评论中的建议在您的环境中安装 bottleneck