gpt4 book ai didi

python - 在 pandas 中按浮点列中的值选择行

转载 作者:行者123 更新时间:2023-11-30 23:00:12 28 4
gpt4 key购买 nike

我使用 pd.read_csv 将 csv 数据文件导入 pandas DataFrame df 中。该文本文件包含一列,其中包含如下字符串:

y
0.001
0.0003
0.0001
3e-05
1e-05
1e-06

如果我打印 DataFrame,pandas 会输出这些值的十进制表示形式,并在逗号后包含 6 位数字,一切看起来都很好。

当我尝试按值选择行时,例如 here :

df[df['y'] == value],

通过输入值的相应十进制表示形式,pandas 可以正确匹配某些值(例如:第 0、2、4 行),但匹配其他值(第 1、3、5 行)。这当然是因为这些行值在基数 2 中没有完美的表示。

我可以这样解决这个问题:

df[abs(df['y']/value-1) <= 0.0001]

不过好像有点别扭。我想知道的是: numpy 已经有一个方法, .isclose ,专门用于此目的。

在这种情况下有没有办法使用.isclose?或者 pandas 中有更直接的解决方案?

最佳答案

是的,你可以使用numpy的isclose

df[np.isclose(df['y'], value)]

关于python - 在 pandas 中按浮点列中的值选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35376575/

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