2024-04-25 02:29:29 发布
网友
我有熊猫数据帧,如下所示。在
chainage(km) 0 0.001 0.002 0.003 0.004
当我使用.loc搜索chainage(km)时,它返回一些链测长度的空数据帧。在
.loc
chainage(km)
--空数据帧
print data.loc[data['chainage(km)'] == float(0.001)]
--返回值
任何帮助都将不胜感激。在
这个问题是由于浮点错误引起的。这在Is floating point math broken?中有解释。在
在这种情况下,请改用np.isclose。在
np.isclose
df[np.isclose(data['chainage(km)'], 0.004)]
两个可能的原因:
列chainage(km)可能是一个对象类型,对于第五行,它将0.004存储为字符串,即'0.004'。把它当作浮子来处理
0.004
'0.004'
data = data.astype(float)
如果完成上述转换后,过滤仍然不适用于0.004
然后,假设data['chainage(km)'] == float(0.004)没有返回任何True,而data.loc[data['chainage(km)'] == float(0.001)]返回正确,则表明您遇到了浮点错误。在
data['chainage(km)'] == float(0.004)
True
data.loc[data['chainage(km)'] == float(0.001)]
尝试以下操作:
这将筛选用任意大小的错误替换相等条件的行。在
这个问题是由于浮点错误引起的。这在Is floating point math broken?中有解释。在
在这种情况下,请改用
np.isclose
。在两个可能的原因:
列
chainage(km)
可能是一个对象类型,对于第五行,它将0.004
存储为字符串,即'0.004'
。把它当作浮子来处理如果完成上述转换后,过滤仍然不适用于
0.004
然后,假设
data['chainage(km)'] == float(0.004)
没有返回任何True
,而data.loc[data['chainage(km)'] == float(0.001)]
返回正确,则表明您遇到了浮点错误。在尝试以下操作:
^{pr2}$这将筛选用任意大小的错误替换相等条件的行。在
相关问题 更多 >
编程相关推荐