测向平均值这不是这个系列的真正意义吗?

2024-04-27 22:06:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调试并遇到以下奇怪的行为。 我在计算一个熊猫系列的平均数,这个系列包含了完全相同的数字。但是,pd.mean()给出了一个不同的数字。你知道吗

问题1:为什么这个系列的平均数是一个不同的数字?你知道吗

问题2:tmm[-1]== tmm.mean()现在给出False。有什么办法可以忽略这个微小的差别,让结果变成真实的吗?我不喜欢abs(tmm[-1]-tmm.mean()) < xxx

方法,因为不确定如何定义xxx。你知道吗

import pandas as pd
import decimal

tmm = pd.Series(14.9199999999999999289457264239899814128875732421875,
                index=range(30))
for t in tmm:
    print(decimal.Decimal(t))
print('mean is')
print(decimal.Decimal(tmm.mean()))

结果:

14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
14.9199999999999999289457264239899814128875732421875
mean is
14.9200000000000034816594052244909107685089111328125

Tags: 方法importfalseis数字absmeanxxx
2条回答

你的两个问题的答案基本上是这样的:

import pandas as pd
import decimal

tmm = pd.Series(decimal.Decimal(14.9199999999999999289457264239899814128875732421875),
                index=range(30))
for t in tmm:
    print(decimal.Decimal(t))
print('mean is')
print(decimal.Decimal(tmm.mean()))

一定要使用十进制。十进制当你创建tmm的时候,这是非常重要的。你知道吗

尝试使用np.isclose()

tmm[20]== tmm.mean()

False

np.isclose(tmm[20], tmm.mean())
True

相关问题 更多 >