TGViewer
This is Data This is Data @thisisdata · 6.21K subscribers
Post #282 3.5K
Дубликаты в данных: откуда берутся и почему с ними важно работать

Продолжаем говорить про 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
  • 🔥 32
  • ❤ 8
More from @thisisdata
  1. Sep 8, 2026Продукты 24 12 сентября в Москве Т-Банк собирает конференцию Продукты 24 x ffdd2d в компле…
  2. Sep 1, 2026День знаний, или Я все еще студент Лето опять пролетело подозрительно быстро. Я не успел н…
  3. Aug 25, 2026Обновил телеграм-курс по метрикам Уже несколько лет я разбираю метрики в канале: фреймворк…
  4. Aug 17, 2026AI в работе. Что изменилось? Почти два года назад я написал пост «Когда тебя заменит робот…
  5. Aug 7, 2026На русском языке о стратегии построения аналитической команды нет почти ничего. Буквально…
  6. Jul 15, 2026Как написать стратегию аналитики и зачем она нужна? Ура, я наконец-то закончил эту статью!…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →