Продолжаем говорить про EDA.
Один из частых источников искажений в аналитике — дубликаты. Они могут незаметно влиять на показатели: увеличивать количество пользователей, транзакций или заказов, создавать иллюзию активности и «раздувать» отчёты. Поэтому выявление и обработка дубликатов — обязательный этап в рамках EDA.
Дубликаты бывают двух типов:
▪️Явные — полные копии строк, где значения совпадают по всем колонкам. Их легко обнаружить с помощью
df.duplicated() и удалить через df.drop_duplicates().▪️Неявные — строки, которые описывают один и тот же объект, но отличаются по формату.
Например:
▪️"USER@mail.ru" и "user@mail.ru"
▪️"ООО Ромашка" и "О.О.О. Ромашка"
▪️"Иванов И.И." и "Иванов Иван"
Такие дубликаты сложнее заметить, и с ними приходится работать вручную или через нормализацию данных.
Основные причины появления дубликатов:
▪️Повторная выгрузка или объединение таблиц без фильтрации.
▪️Ошибки при джойне.
▪️Разные источники с разной структурой.
▪️Отсутствие стандартизации ввода данных.
▪️Человеческий фактор (опечатки, лишние пробелы, регистр).
Что помогает:
✔️ Приведение строк к единому регистру
.str.lower()✔️ Удаление пробелов
.str.strip() и лишних символов .str.replace()✔️ Поиск дубликатов по ключевым колонкам с помощью
duplicated(subset=...)✔️ В отдельных случаях — предварительная агрегация или группировка
Лайфхак:duplicated(subset=...)особенно полезен, когда в таблице есть автоинкрементные ID. Такие поля делают строки уникальными, хотя по сути данные могут дублироваться.
Например, в датасете мы видим, что один и тот же пользователь почему-то сделал два одинаковых заказа — разныйorder_id, но одинаковыеuser_id,product_idиorder_date. В этом случаеduplicated(subset=['user_id', 'product_id', 'order_date'])поможет найти дубли, которые не видны при обычной проверке.
Перед тем как удалять строки, важно понимать контекст: действительно ли это дубли, или просто схожие, но разные записи. Особенно аккуратно нужно действовать в случае неявных дубликатов — иногда лучше провести дополнительный анализ, чем потерять важные данные.
Дубликаты — это не просто технический шум. Это риск искажения выводов, особенно в метриках, связанных с уникальными пользователями, заказами или событиями. Их стоит проверять в самом начале работы с данными.
В следующем посте — разберёмся с пропущенными значениями: от типовых NaN до «пустых» строк, которые такими не являются.
#харды #eda