gpt4 book ai didi

python - 从所有 pandas 数据帧中减去 1.00。得到大的负值?

转载 作者:行者123 更新时间:2023-11-30 22:00:37 25 4
gpt4 key购买 nike

我有五个数据框。我想从所有包含等于 1 或小于 1 的值的数据帧中减去 1.00。

DT   D1   D2
0 1.0 1.0


RE E1 E2 E3
0 1.0 1.0 0.8


FE F1 F2
0 1.0 0.63


SE S1 S2
0 1.0 1.0


DT D1 D2
RE E1 E2 E3 E1 E2 E3
0 1.0 1.0 1.0 1.0 0.45 1.0


DT D1 D2
RE E1 E2 E3 E1 E2 E3
FE F1 F2 F1 F2 F1 F2 F1 F2 F1 F2 F1 F2
0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 1.0 1.0

我尝试跟踪所有数据帧,但是,在某些情况下,我得到很大的负值,例如 1.110223e-16、-2.220446e-16。如何避免这些值?

df = 1.00 - df

最佳答案

1.110223e-16 不是一个很大的负值。它实际上是一个非常小的正值。 e-16 代表一个微小的指数。

1e-2
# 0.01

1e-4
# 0.0001

print('{:.16f}'.format(1e-16))
# 0.0000000000000001

我的猜测是你遇到了 floating point inconsistencies 。例如,数据中的 1 实际上可能具有微小的浮点分数:

1 + 1.110223e-16
# 1.0

只是当您打印 DataFrame 时您看不到它。

<小时/>

我的一个建议是使用 np.isclose 并将这些接近 0 的值设置为零。

df.values[np.isclose(df.values, 0)] = 0

关于python - 从所有 pandas 数据帧中减去 1.00。得到大的负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54272908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com