Как вы чистите сырые данные
Вопрос
Вам выгрузили CSV из CRM. Опишите по шагам, как вы приведёте его в порядок перед анализом.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Разведка: shape, info, head, describe, доля пропусков по колонкам
Типы: даты через to_datetime, числа через to_numeric с coerce, категории
Строки: strip, регистр, единый формат, лишние символы
Дубли: полные и по ключу, правило какую запись оставить
Пропуски: природа и стратегия, флаг пропуска
Проверки: диапазоны, уникальность ключа, сверка сумм с источником
Что могут спросить следом
- Как понять, что пропуски не случайны?
- Что делать, если в колонке даты в трёх форматах?
- Как убедиться, что после чистки ничего не потеряли?
Разбор
Начинаю с разведки: shape, head, info для типов, describe и доля пропусков по колонкам через isna().mean(). Потом типы: даты через to_datetime, числа через to_numeric(errors="coerce"), а после этого смотрю, сколько значений превратилось в NaN, и разбираю их отдельно, чтобы не потерять данные молча. Строки нормализую: str.strip, регистр, единый формат телефонов или городов. Дальше дубли: полные и по бизнес-ключу, с правилом, какую версию оставляю, обычно самую свежую по updated_at. Пропуски обрабатываю по смыслу: где-то это ноль, где-то «неизвестно», иногда добавляю флаг пропуска. В конце проверки: уникальность ключа, разумные диапазоны, число строк до и после каждого шага и сверка итоговых сумм с источником.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.