这是我的代码:

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 的正确值为零,因为所有三个数字都相同。

现在我把我的数据框放在上面并用数字 9 替换第一个数字 8
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

关于 Pandas 标准差奇迹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32056540/

10-12 18:46