Очистка данных

Сложность: Начальный Время чтения: 10 минут

Почему данные никогда не бывают идеальными

Каждый набор данных, с которым вы столкнётесь в реальном мире, будет иметь проблемы. Респонденты пропускают вопросы. Датчики выходят из строя и записывают невозможные значения. Таблицы копируются и вставляются с дублированными строками. Кто-то вводит «Н/Д» в числовое поле. Дата появляется как «03/04/2025», и нельзя понять, это 3 апреля или 4 марта.

Очистка данных -- это процесс нахождения и исправления этих проблем до того, как вы начнёте анализ. Это не гламурная работа, но, пожалуй, самый важный шаг в любом анализе. Опытные дата-сайентисты оценивают, что 60-80% их времени уходит на очистку и подготовку данных. Пропустите этот шаг, и ваши результаты могут быть бессмысленными -- или, что ещё хуже, уверенно неправильными.

60 Очистка 20 Анализ 10 Отчётность 10 Сбор

На графике выше показано типичное распределение времени в проекте по работе с данными. Очистка доминирует в нагрузке, поэтому умение делать её хорошо окупается сторицей.

Работа с пропущенными значениями

Пропущенные значения -- самая распространённая проблема качества данных. Клиент оставляет поле дохода пустым в форме. Метеостанция отключается на день. Пациент пропускает контрольный приём. Вопрос: что с этим делать?

У вас есть несколько вариантов, каждый со своими компромиссами. Можно удалить строки с пропущенными значениями -- это просто, но уменьшает набор данных и может внести смещение, если пропуски не случайны (например, люди с высокими доходами чаще могут пропускать вопросы о доходе). Можно заполнить (импутировать) пропущенные значения средним по столбцу, медианой или более сложной прогнозной моделью. Или можно отметить пропущенные значения и включить факт пропуска как отдельную переменную в анализ.

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

Обнаружение и удаление дубликатов

Дублирующиеся записи могут завысить ваши результаты и исказить каждую вычисляемую статистику. Если покупка клиента появляется дважды в базе данных, вы завысите выручку и переоцените количество транзакций. Дубликаты проникают через слияние данных, повторную отправку форм, системные сбои и ошибки ручного ввода.

Найти дубликаты не всегда просто. Точные дубликаты (идентичные строки) легко обнаружить. Но что насчёт «Иван Петров» по адресу «ул. Ленина, 123» и «И. Петров» по адресу «Ленина 123»? Скорее всего, это один и тот же человек с небольшими вариациями. Техники нечёткого сопоставления помогают выявить почти-дубликаты, но требуют экспертных решений о том, насколько похожими должны быть две записи для объединения.

10500 До очистки 420 Удалено дубликатов 10080 После очистки

Работа с выбросами

Выброс -- это значение, резко отличающееся от остальных данных. Зарплата $5,000,000 в наборе данных менеджеров среднего звена. Показание температуры -40 градусов в Майами в июле. Сессия на сайте длительностью 72 часа.

Ключевой вопрос с выбросами -- являются ли они обоснованными или ошибками. Зарплата CEO в $5 миллионов реальна -- она просто относится к другой популяции. Температура -40 в Майами почти наверняка ошибка датчика. 72-часовая веб-сессия может быть кем-то, кто оставил вкладку открытой.

Для ошибок уместны исправление или удаление. Для обоснованных выбросов есть варианты: оставить их и использовать робастные статистики (например, медиану вместо среднего), ограничить их разумным порогом (это называется винсоризация) или анализировать их отдельно. Никогда не удаляйте автоматически выбросы просто потому, что они необычны -- всегда сначала исследуйте, почему они существуют.

Проблемы с типами данных

Компьютеры по-разному обрабатывают числа, текст, даты и категории. Если числовой столбец случайно содержит текстовые значения (вроде «Н/Д» или «Уточняется»), вычисления не сработают или выдадут ошибки. Если даты хранятся непоследовательно (одни как «2025-03-15», другие как «15.03.2025»), сортировка и фильтрация не будут работать. Если категория написана по-разному в разных строках («Россия», «РФ», «рф»), программа будет считать их тремя отдельными группами.

Очистка типов данных включает стандартизацию форматов, преобразование строк в числа при необходимости, приведение дат к единому формату и гармонизацию меток категорий. Это утомительно, но необходимо. Единственное текстовое значение-бунтарь в числовом столбце может обрушить весь аналитический конвейер.

Типичные ошибки

Даже опытные аналитики допускают ошибки при очистке данных. Одна распространённая ошибка -- очистка оригинальных данных без сохранения резервной копии. Всегда работайте с копией. Другая -- чрезмерная очистка -- удаление стольких строк и значений, что оставшиеся данные перестают быть репрезентативными. Третья -- непоследовательная очистка -- применение разных правил к разным частям набора данных без документирования причин.

Лучшая защита -- вести журнал очистки: запись каждого внесённого изменения, его причины и количества затронутых записей. Это делает вашу работу воспроизводимой и проверяемой. Если кто-то ставит под сомнение ваши результаты, вы можете указать на журнал и показать, что именно произошло с сырыми данными до начала анализа.

Ключевой вывод

Очистка данных -- это негламурный фундамент, на котором строится любой надёжный анализ. Работайте с пропущенными значениями вдумчиво, удаляйте дубликаты аккуратно, исследуйте выбросы прежде чем удалять, и стандартизируйте типы данных последовательно. Всегда работайте с копией, документируйте каждое изменение и помните: время, вложенное в очистку данных, спасёт вас от выводов, которые данные на самом деле не поддерживают.