gpt4 book ai didi

python - Panda Dataframe 浮点比较问题

转载 作者:行者123 更新时间:2023-12-04 02:26:51 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据集,其中第三列是通过将第一列除以第二列得出的:

    A_CLOSE_PRICE   B_CLOSE_PRICE   A_CLOSE_PRICE/B_CLOSE_PRICE
0 113.55 0.00 inf
1 97.85 80.00 1.223125
2 60.00 70.00 0.857143
3 51.65 51.65 1.000000
4 53.50 NaN NaN
5 NaN 1649.60 NaN
6 40.00 40.50 0.987654
7 1.10 1.00 1.100000

因为我想显示包含超过 10% 差异的行,所以我运行了这个:

(df['A_CLOSE_PRICE/B_CLOSE_PRICE'] - 1 ).abs() > 0.1

但如下所示的最后一行返回“True”而不是“False”,这在我看来就像一个 float 问题。有谁知道应该如何正确处理这个问题,这样我才能得到正确的结果?

0     True
1 True
2 True
3 False
4 False
5 False
6 False
7 True

最佳答案

是的,你有一个浮点问题,我认为你可以使用 df.pct_change 直接在 axis=1 上内置 np.isclose 来处理浮点比较

s = df[['B_CLOSE_PRICE','A_CLOSE_PRICE']].pct_change(axis=1).iloc[:,-1].abs()
s.gt(0.1) & ~np.isclose(s-0.1,0)

0     True
1 True
2 True
3 False
4 False
5 False
6 False
7 False

关于python - Panda Dataframe 浮点比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66839780/

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