Две возможные причины:
Возможно, что столбец chainage(km)
является типом объекта, и для пятой строки он хранит 0.004
в виде строки, то есть '0.004'
.Чтобы исправить это, приведите его как float
data = data.astype(float)
Если после выполнения приведенного выше преобразования, фильтрация все еще не работает для 0.004
Тогда, учитывая, что data['chainage(km)'] == float(0.004)
не работаетвернуть любой True
, в то время как data.loc[data['chainage(km)'] == float(0.001)]
возвращает корректно, это говорит о том, что вы испытываете ошибки с плавающей запятой.
Попробуйте выполнить следующее:
x = float(0.004)
data[abs(data['chainage(km)'] - float(x)) < 0.0001*x]
Этот фильтр для строки заменяет условие равенства ошибкой произвольного размера.