Неоднозначное поведение NaN и 0 в кадре данных панд - PullRequest
0 голосов
/ 23 октября 2019

В кадре данных у меня есть столбцы целых чисел (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, это не работает для меня.

...