loc返回空的datafram

2024-04-25 02:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有熊猫数据帧,如下所示。在

chainage(km)  
0  
0.001  
0.002  
0.003  
0.004

当我使用.loc搜索chainage(km)时,它返回一些链测长度的空数据帧。在

^{pr2}$

--空数据帧

print data.loc[data['chainage(km)'] == float(0.001)]  

--返回值

任何帮助都将不胜感激。在


Tags: 数据datafloatlocprint返回值kmpr2
2条回答

这个问题是由于浮点错误引起的。这在Is floating point math broken?中有解释。在

在这种情况下,请改用np.isclose。在

df[np.isclose(data['chainage(km)'], 0.004)]

两个可能的原因:

chainage(km)可能是一个对象类型,对于第五行,它将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)]返回正确,则表明您遇到了浮点错误。在

尝试以下操作:

^{pr2}$

这将筛选用任意大小的错误替换相等条件的行。在

相关问题 更多 >