pandas: типы столбцов и очистка по правилу

Дубли: duplicated и drop_duplicates по ключевым столбцам

Содержание курса

Проверка результата дедупликации по shape и уникальности ключа

После drop_duplicates() стоит сделать две простые проверки, прежде чем двигаться дальше. Они занимают одну-две строки кода, но дают уверенность, что операция сработала именно так, как ожидалось.

Первая проверка — сравнить число строк до и после:

import pandas as pd

df = pd.DataFrame({
    'user_id': [1, 2, 1, 3, 2],
    'action':  ['login', 'buy', 'login', 'view', 'buy'],
    'amount':  [0, 100, 0, 50, 200]
})

key_cols = ['user_id', 'action']
df_clean = df.drop_duplicates(subset=key_cols, keep='first')

print(df.shape[0])       # 5 — исходное число строк
print(df_clean.shape[0]) # 3 — после дедупликации

Числа сошлись с ожиданием: было 5 строк, 2 из них — дубли, осталось 3. Если цифра неожиданная, это сигнал проверить subset — возможно, ключевые столбцы заданы не так, как нужно.

Вторая проверка — убедиться, что в очищенном DataFrame действительно нет дублей по ключевым столбцам:

print(df_clean.duplicated(subset=key_cols).sum())  # 0

Если результат не ноль, значит дедупликация не завершила работу — например, из-за опечатки в subset или неожиданного содержимого данных. Здесь используется тот же duplicated() с теми же key_cols, что и при диагностике — никаких новых инструментов.

Обе проверки вместе занимают буквально три строки и дают ответы на два разных вопроса:

  • shape[0] говорит о том, сколько строк удалено — структурный размер;
  • duplicated(...).sum() == 0 говорит о том, что уникальность по ключу достигнута.

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

Задачи на очистку данных в pandas. Потренируйтесь выбирать ключ дубликатов и keep="first" или keep="last", очищать текстовые ключи и заполнять пропуски.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.