【发布时间】:2023-02-25 21:37:58
【问题描述】:
我创建了一个 dtype float64 的计算列,并预设精度为 2 位小数。
data['Engine Efficiency'] = 4.0 * data['Engine Displacement'] / (data['# Cylinders'].astype('float64') * 3.24)
我正在尝试根据其值过滤此列,检查是否相等:
data.loc[data['Engine Efficiency'] == 0.62]
如果 float 数学损坏,还尝试了以下操作:
data[np.isclose(data['Engine Efficiency'], 0.62)]
data[np.abs(data['Engine Efficiency'] - float(0.62)) < 0.0001*float(0.62)]
在所有情况下,输出都是一个空数据框,这不应该是这种情况。
在检查不平等时,我得到了完整的数据框,本质上意味着我正在搜索的值不存在。我认为这应该是计算过程中的一个数字问题。
我试过更改计算公式,使用math.pi/np.pi,设置精度,将所有内容转换为浮点数,但仍然没有。
如果需要,您可以在此处找到数据集和笔记本文件: https://wetransfer.com/downloads/aa57abd8d2626e1ec39a0f32ecf59cad20230225114538/184585
【问题讨论】: