gpt4 book ai didi

python - 如何使用 Pandas 子选择与 float dtype 相等的行

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:49 27 4
gpt4 key购买 nike

我有以下数据集示例。

df_csv_y =  pd.read_csv('y_factors.csv')

time value
0 736527.481944 27.20001
1 736527.482639 27.10001
2 736527.483333 27.10001
3 736527.484028 27.10001
4 736527.484722 27.10001
......

然后我使用下面的代码尝试了索引。

df_csv_y[df_csv_y.time== 736527.482639]

我索引了数据集中存在的值,但结果如下。

Empty DataFrame
Columns: [time, value]
Index: []

我检索整数时得到结果,但我无法检索像上面数据集的时间列这样的 float 据。

我想知道如何解决这个问题。

最佳答案

这里的问题是您的实际浮点值比显示值具有更高的精度,您可以使用 np.isclose并将公差设置为比默认值更高的精度,以选择足够接近的值:

In[165]:
df[np.isclose(df['time'],736527.482639, 0.0000000001)]

Out[165]:
time value
1 736527.482639 27.10001

您当前发布的示例数据有效,但您的真实数据具有更高的精度。您可以将 atol 参数调整为 np.isclose 以设置绝对公差。

另一个方面是,比较浮点值是否相等通常会因为 floating point precision 而无法正常工作。所以在处理浮点值时,最好使用类似 np.isclose 的东西进行比较

关于python - 如何使用 Pandas 子选择与 float dtype 相等的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50738946/

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