Более новые версии Pandas имеют новые методы DataFrame.isna () и DataFrame.notna ()
1) Использование метода DataFrame.isna()
!
>>> df
A B C D E F
0 0 1.0 2.0 3 4 one
1 3 5.0 NaN NaT 5 two
2 8 NaN 10.0 None 6 three
3 11 12.0 13.0 NaT 7 four
Чтобы получить только список столбцов с нулевыми значениями:
>>> df.columns[df.isna().any()].tolist()
['B', 'C', 'D']
Для вывода списка всех столбцов, имеющих значения nan.
>>> df.loc[:, df.isna().any()]
B C D
0 1.0 2.0 3
1 5.0 NaN NaT
2 NaN 10.0 None
3 12.0 13.0 NaT
2) Использование метода DataFrame.isnull()
!
Чтобы получить только список столбцов с нулевыми значениями, тип возвращаемого значения - логическое.
>>> df.isnull().any()
A False
B True
C True
D True
E False
F False
dtype: bool
Чтобы получить список пустых столбцов со значениями:
>>> df.columns[df.isnull().any()].tolist()
['B', 'C', 'D']
Чтобы выбрать подмножество - все столбцы, содержащие хотя бы одно значение NaN
:
>>> df.loc[:, df.isnull().any()]
B C D
0 1.0 2.0 3
1 5.0 NaN NaT
2 NaN 10.0 None
3 12.0 13.0 NaT
Если вы хотите подсчитать пропущенные значения в каждом столбце:
>>> df.isnull().sum()
A 0
B 1
C 1
D 3
E 0
F 0
dtype: int64
OR
>>> df.isnull().sum(axis=0) # axis=0 , across the columns
A 0
B 1
C 1
D 3
E 0
F 0
# >>> df.isnull().sum(axis=1) # across the rows
Наконец, чтобы получить общее количество значений NaN и non NaN в кадре данных:
Значение счетчика Nan
>>> df.isnull().sum().sum()
Количество значений не NaN
>>> df.notnull().sum().sum()