这是我的代码:
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/