В кадре данных у меня есть столбцы целых чисел (0 и теоретически 1, но пока этого не происходит) и NaN. Когда я фильтрую для значений 0 или NaN, я получаю странное поведение, когда
df_filtered = df.loc[:, df.columns.str.contains('TestID47')]
df_filtered = df_filtered[df_filtered != 0]
df_filtered.head(3)
Результат:
TestID47 TestID472 TestID475 TestID478
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
df_filtered2 = df.loc[:, df.columns.str.contains('TestID47')]
df_filtered2 = df_filtered2[df_filtered2 != np.nan]
df_filtered2.head(3)
Результат:
TestID47 TestID472 TestID475 TestID478
0 0 0.0 0.0 0.0
1 0 0.0 0.0 0.0
2 0 0.0 0.0 0.0
Dtypes pf df_filtered2 похожи на это, что должно объяснить разные 0 / 0.0:
TestID47 int64
TestID472 float64
TestID475 float64
TestID478 float64
Что я делаю неправильно или отсутствует? Это поведение как-то ожидается? Поскольку NaN всегда ЛОЖЬ, и мне нужно, чтобы 0 отличался от NaN, это не работает для меня.