Пропущенные значения
Есть возможность посмотреть количество пропущенных значений в каждом признаке(столбце):
df.isna().sum()
Но это дает нам перечень всех столбцов. Как вывести только те столбцы(с количеством пропущенных значений), у которых есть пропущенные значения? Можно конечно сделать что-то вроде:
na_feat = [i for i in train.columns if train[i].isna().sum() != 0]
for i in na_feat:
print(i, train[i].isna().sum())
Но я делал это просто в одну строку и к сожалению забыл как именно(Фэйл!).
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Вариант 1:
In [154]: df.isna().sum().to_frame(name="nans").query("nans > 0")["nans"]
Out[154]:
b 1
c 3
Name: nans, dtype: int64
Вариант 2:
In [153]: df.loc[:, df.columns[df.isna().any()]].isna().sum()
Out[153]:
b 1
c 3
dtype: int64
PS первый вариант более производительный потому, что только один раз вызывает df.isna() - это самая медленная операция и на больших фреймах разница может быть заметной.
