Python pandas проверить значение на None

import math
import numpy as np
from scipy.spatial import distance

#Создаю Dataframe
a = [0,1] * 10
b = [1,0] * 10
df = pd.DataFrame({'S': np.arange(100,500,20),
                  'A': np.arange(20,80,3),
                  'V': np.arange(60,120,3),
                  'N': np.arange(986,45876,2300),
                  'B': a,
                  'B_1': b},
                 index=[np.arange(0,20)])

#Создаю пропущенное значение в таблице через np.nan
df['S'].iloc[1] = np.nan
df.head()

      S    A    V   N      B    B_1
0   100.0 20    60  986    0    1
1   nan   23    63  3286.  1    0
2   140.0 26    66  5586.  0    1
3   160.0 29    69  7886.  1    0
4   180.0 32    72  10186. 0    1

Теперь мне необходимо пройтись по всем столбцам и проверить значение каждого элемента на None.
Здесь и возникла проблема. Как правильно указать в условии?
Я пробывал следующими способами, но не один не дает положительного результат.

for i in df.columns:
    for i in df[i]:
        if(i == None):
            print(i)
#2
for i in df.columns:
    for i in df[i]:
        if(i == np.nan):
            print(i)


#3
for i in df.columns:
    for i in df[i]:
        if(i == 'nan'):
            print(i)

Подскажите пожалуйста, что необходимо указать в условии?


Ответы (1 шт):

Автор решения: CrazyElf

У меня получилось только так:

np.isnan(i)
pd.isnull(i)
pd.isna(i)

По факту там лежит np.nan, но впрямую сравнивать значения с np.nan нельзя, можно только тестировать специальными функциями.

→ Ссылка