Возможно, из-за того, что значение с плавающей запятой может иметь большое количество десятичных знаков, вы можете установить ограничение, округляя их:
np.random.seed(0)
a = np.random.random(5)
b = np.random.random(5)
df = pd.DataFrame(dict(a = a, b = b))
df.head(2)
# a b
# 0 0.548814 0.645894
# 1 0.715189 0.437587
(df.a == 0.548814).head(2) # There is no match here
# 0 False
# 1 False
(df.a.round(6) == 0.548814).head(2) #There is match here by rounding
# 0 True
# 1 False
Если вам нужна только целая часть, используйте метод astype
из серии, в пример выше:
df.a = df.a + 1
df.a.head(3)
# 0 1.548814
# 1 1.715189
# 2 1.602763
df[df.a.astype(int) == 1] # this will return a view of all dataframe