Сначала приведение к строкам, а затем фильтрация по boolean indexing
:
df = df[(df.astype(str) != '?').all(axis=1)]
#alternative solution
#df = df[~(df.astype(str) == '?').any(axis=1)]
print (df)
X Y Z
1 1 2 3
3 4 4 4
Или сравните массив numpy:
df = df[(df.values != '?').all(axis=1)]
Подробнее :
Сравнить все преобразованные строки по astype
с условием изменения на !=
:
print (df.astype(str) != '?')
X Y Z
0 True True False
1 True True True
2 False False True
3 True True True
4 False True True
И затем проверьте, если all
True
значений в строке:
print ((df.astype(str) != '?').all(axis=1))
0 False
1 True
2 False
3 True
4 False
dtype: bool