Канал Романа Романчука про аналитику и данные.
Рассказываю про метрики и мат.статистику. Обозреваю ENG и RUS статьи. Советую книги. Делюсь скриптами, ссылками, майндмэпами.
Сайт: https://thisisdata.ru
Задать вопрос: @romanchuk_roman
Post #289
4.39K
Что делать с пропусками в данных?
Продолжаем говорить про исследовательский анализ данных. Я уже рассказал о том, что делать с дубликатами, а сегодня речь пойдет о пропусках.
Пропуски – это достаточно частая ситуация при работе с данными. Они могут появляться по разным причинам: сбои в системе, ошибки сбора или просто кто-то не заполнил нужное поле. Игнорировать их нельзя так как они искажают расчёты, мешают визуализации и могут привести к неправильным выводам.
Что бы это ни было, с пропусками надо разбираться до того, как вы понесете цифры стейкхолдерам.
Работу с пропусками всегда начинаем с базы:
Так, пропуски найдены. Может просто удалить их? Нееет, подожди.
Удаление – это крайняя мера, так как можно потерять слишком много ценных данных. Особенно если это не просто пустая строчка, а редкий, но важный пользователь. Поэтому чаще выбирают заполнение. Вот основные методы:
1️⃣ Среднее, медиана, мода
Самый простой и популярный способ – подставить среднее или медиану по колонке. Но не делай это «тупо» по всем строкам сразу. Лучше сгруппируй их по категориям. Например, если у тебя не указан доход клиента – бери медиану по возрастной группе или региону. Так получится ближе к реальности.
2️⃣ Предыдущее или следующее значение
Идеально подходит для временных рядов. Если один день в продажах пропал, но до и после были – можно заполнить с помощью
Только помни: это работает, если данные меняются постепенно, а не скачками.
3️⃣ Интерполяция
Вот тут начинается магия. Интерполяция – способ аккуратно восстановить пропущенные значения по соседним точкам. Простой вариант – линейный:
Если тренд сложный, можно попробовать polynomial, а если данные колеблются, то spline. Это особенно полезно в метриках с сезонностью или кривыми трендами.
Важно: интерполяция работает, когда есть хотя бы несколько точек до и после. Если пропуски в начале или в конце ряда – лучше использовать
Как выбирать метод?
✔️ Пропуск один – заполни медианой.
✔️ Пропуск в середине временного ряда – попробуй интерполяцию.
✔️ Пропуск в начале или в конце – используй ближайшее значение.
✔️ Пропуски только в отдельных группах – группируй перед заполнением.
Пропуски не повод паниковать. Это повод задуматься: почему их так много и что будет, если их игнорировать?
#харды #eda
Продолжаем говорить про исследовательский анализ данных. Я уже рассказал о том, что делать с дубликатами, а сегодня речь пойдет о пропусках.
Пропуски – это достаточно частая ситуация при работе с данными. Они могут появляться по разным причинам: сбои в системе, ошибки сбора или просто кто-то не заполнил нужное поле. Игнорировать их нельзя так как они искажают расчёты, мешают визуализации и могут привести к неправильным выводам.
Что бы это ни было, с пропусками надо разбираться до того, как вы понесете цифры стейкхолдерам.
Работу с пропусками всегда начинаем с базы:
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












