👨‍💻 df.isna().sum() — вредная команда.

Вредная не потому, что она врёт, а потому, что создаёт опасную иллюзию контроля.

Вы видите аккуратную табличку с количеством пропусков и думаете: «Окей, я всё знаю». Но на самом деле вы не знаете ничего. Знать, сколько данных пропущено — это первый класс, вторая четверть. Гораздо важнее понимать, КАК они пропущены.

Есть ли в пропусках система? Они случайны или нет? Пропуски в столбце А связаны с пропусками в столбце Б?

Простой подсчёт NaN на эти вопросы не ответит. Чтобы перейти от поверхностного взгляда к глубокому пониманию, нужен более глубокий инструмент. И он есть — это библиотека missingno.

В ней разные полезные визуализации, например:

🔬 msno.matrix() — показывает точное расположение каждой «дыры» в данных. Сразу видно, пропуски — это единичные точки или целые «мёртвые зоны».

📊 msno.heatmap() — детектор скрытых связей. Показывает, значения в каких признаках пропущены вместе.

🗺 msno.dendrogram() — карта родства. Группирует столбцы по схожести паттернов пропусков. Сразу видно, какие признаки ведут себя одинаково, а какие — живут своей жизнью.

Вот вам руководство по missingno с примерами кода и графиками: 👉🏻 Пропуски в данных — не приговор: Полное руководство по визуализации и анализу с missingno в Python

Работаем с пропусками умнее 🧠

👨‍💻 df.isna().sum() — вредная команда.
Вредная не потому, что она врёт, а потому, что создаёт опасную иллюзию контроля | Сетка — социальная сеть от hh.ru