Вопрос с собеседования · Аналитика данных

Как работать с пропущенными значениями в данных?

JuniorPython и pandaspandas
Ещё спрашивают так:
  • Можно ли заполнить пропуски средним?
Коротко

Сначала понять, почему значение пропущено: технический сбой, «не применимо» (нет второго адреса), пользователь не захотел указывать. Пропуск часто несёт информацию. Варианты: исключить строки (если пропусков мало и они случайны), заполнить (медианой, отдельной категорией, прошлым значением для временных рядов), оставить пропуск и добавить флаг «было пропущено».

  • Заполнение средним сжимает дисперсию и искажает связи
  • NULL в SQL и NaN в pandas ведут себя по-разному в агрегатах и сравнениях
  • Доля пропусков по времени — индикатор поломки сбора данных

А ещё Многие модели бустинга умеют работать с пропусками сами

Подробно

Механизмы пропусков:

  • полностью случайные — сбой записи без связи с данными;
  • зависящие от других признаков — старые клиенты чаще без email;
  • зависящие от самого значения — люди с высоким доходом чаще не указывают доход. Здесь любое простое заполнение вносит смещение.

Инструменты pandas: isna().mean() — доля пропусков по столбцам, fillna, ffill для рядов, dropna(subset=…), отдельная категория "unknown" для строк.

NULL против NaN: в SQL AVG игнорирует NULL, COUNT(col) их не считает, NULL = NULL — не истина. В pandas mean пропускает NaN по умолчанию, а sum пустого столбца — 0. Расхождения отчётов часто отсюда.

Что хотят услышать

  • Причины пропусков и почему это важно.
  • Способы обработки и их цена.
  • Различие NULL в SQL и NaN в pandas.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Всегда заполнять пропуски средним по колонке: так не теряются строки и не меняется распределение признака
  • ✗Всегда удалять строки с пропусками
  • ✓Понять причину пропуска; исключить, заполнить или оставить с флагом — пропуск несёт информацию
  • ✗NULL в SQL и NaN в pandas ведут себя одинаково при сравнениях

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования