TGViewer
This is Data This is Data @thisisdata · 6.21K subscribers
Post #289 4.39K
Что делать с пропусками в данных?

Продолжаем говорить про исследовательский анализ данных. Я уже рассказал о том, что делать с дубликатами, а сегодня речь пойдет о пропусках.

Пропуски – это достаточно частая ситуация при работе с данными. Они могут появляться по разным причинам: сбои в системе, ошибки сбора или просто кто-то не заполнил нужное поле. Игнорировать их нельзя так как они искажают расчёты, мешают визуализации и могут привести к неправильным выводам.
Что бы это ни было, с пропусками надо разбираться до того, как вы понесете цифры стейкхолдерам.

Работу с пропусками всегда начинаем с базы: df.isna().sum() – покажет нам, где и сколько пропущено.

Так, пропуски найдены. Может просто удалить их? Нееет, подожди.
Удаление – это крайняя мера, так как можно потерять слишком много ценных данных. Особенно если это не просто пустая строчка, а редкий, но важный пользователь. Поэтому чаще выбирают заполнение. Вот основные методы:

1️⃣ Среднее, медиана, мода

Самый простой и популярный способ – подставить среднее или медиану по колонке. Но не делай это «тупо» по всем строкам сразу. Лучше сгруппируй их по категориям. Например, если у тебя не указан доход клиента – бери медиану по возрастной группе или региону. Так получится ближе к реальности.

df['income'] = df.groupby('region')['income'].transform(lambda x: x.fillna(x.median()))


2️⃣ Предыдущее или следующее значение

Идеально подходит для временных рядов. Если один день в продажах пропал, но до и после были – можно заполнить с помощью .ffill() или .bfill().

df['sales'] = df['sales'].ffill()


Только помни: это работает, если данные меняются постепенно, а не скачками.

3️⃣ Интерполяция

Вот тут начинается магия. Интерполяция – способ аккуратно восстановить пропущенные значения по соседним точкам. Простой вариант – линейный:

df['metric'] = df['metric'].interpolate(method='linear')


Если тренд сложный, можно попробовать polynomial, а если данные колеблются, то spline. Это особенно полезно в метриках с сезонностью или кривыми трендами.

Важно: интерполяция работает, когда есть хотя бы несколько точек до и после. Если пропуски в начале или в конце ряда – лучше использовать .ffill() или .bfill().

Как выбирать метод?

✔️ Пропуск один – заполни медианой.
✔️ Пропуск в середине временного ряда – попробуй интерполяцию.
✔️ Пропуск в начале или в конце – используй ближайшее значение.
✔️ Пропуски только в отдельных группах – группируй перед заполнением.

Пропуски не повод паниковать. Это повод задуматься: почему их так много и что будет, если их игнорировать?

#харды #eda
  • ❤ 19
  • 👍 14
  • 🔥 5
More from @thisisdata
  1. Sep 8, 2026Продукты 24 12 сентября в Москве Т-Банк собирает конференцию Продукты 24 x ffdd2d в компле…
  2. Sep 1, 2026День знаний, или Я все еще студент Лето опять пролетело подозрительно быстро. Я не успел н…
  3. Aug 25, 2026Обновил телеграм-курс по метрикам Уже несколько лет я разбираю метрики в канале: фреймворк…
  4. Aug 17, 2026AI в работе. Что изменилось? Почти два года назад я написал пост «Когда тебя заменит робот…
  5. Aug 7, 2026На русском языке о стратегии построения аналитической команды нет почти ничего. Буквально…
  6. Jul 15, 2026Как написать стратегию аналитики и зачем она нужна? Ура, я наконец-то закончил эту статью!…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →