Задачи на очистку данных в pandas: пропуски и дубли
Подборка посвящена очистке данных в pandas: пропускам, типам столбцов, текстовым ключам и дубликатам. Цель — получить таблицу, которую можно безопасно группировать и соединять с другими данными.
Сначала смысл, затем метод
Пропуск не всегда можно заменить нулём. Две строки с одним клиентом не всегда дубли. Перед очисткой решите, что означает поле и по какому ключу определяется уникальная запись. Сохраните исходную таблицу для сравнения.
Пример нормализации ключа
import pandas as pd
df = pd.DataFrame({"code": [" A ", "a", " B"], "qty": [2, 3, 4]})
df["key"] = df["code"].str.strip().str.lower()
print(df["key"].tolist())
print(df.duplicated("key", keep=False).tolist())
Результат:
['a', 'a', 'b']
[True, True, False]
После нормализации первые две строки имеют один ключ. Это повод проверить их, а не автоматически удалить одну: у них отличаются количества. Решение зависит от того, повторная ли это запись или два разных события.
Что отработать
- Заполнение пропусков с сохранением Int64 и boolean.
- Очистка пробелов, регистра и разделителей.
- Ключ дубликатов и выбор first или last.
- Правильные типы уже при чтении CSV.
Перед объединением проверьте ключи, затем переходите к задачам groupby и merge. Другие темы — в общей практике pandas. Обработка пропусков в документации pandas. Полный маршрут — бесплатный курс.
- pandas dropna subset: какие строки удаляются и почему
Как dropna(subset=...) учитывает пропуски только в выбранных столбцах? Минимальный пример pandas и вопрос с проверкой ответа.
NumPy и pandas: практический тренажёр - pandas dropna: how, subset и форма таблицы
Удалите строки с пропусками разными правилами dropna(how=...) и subset, сравните форму DataFrame после каждого шага.
NumPy и pandas: практический тренажёр - pandas fillna: заполнение пропусков и nullable-типы Int64
Как заполнить пропуски и сохранить Int64, Float64 и boolean в pandas? Пример fillna и задача на nullable dtype с проверкой кода.
NumPy и pandas: практический тренажёр - pandas: удаление дубликатов — subset, keep first и last
Как удалить дубликаты по выбранным столбцам pandas и сохранить первую или последнюю строку? Рабочий пример и задача с проверкой.
NumPy и pandas: практический тренажёр - pandas duplicated keep=False: найти все повторяющиеся ключи
Как отметить все дубликаты pandas через duplicated(subset=..., keep=False)? Пример маски и задача на исключение повторных ключей.
NumPy и pandas: практический тренажёр - Дубли: duplicated и dropduplicates по ключевым столбцам — задача по NumPy и pandas
dropduplicates(subset=['city', 'date'], keep='first')? Проверьте ответ в задаче из бесплатного курса NumPy и pandas.
NumPy и pandas: практический тренажёр - pandas str.strip, lower и replace: очистка строк без циклов
Уберите пробелы по краям, приведите строки к нижнему регистру и замените символы в pandas. Рабочий пример и задача с проверкой.
NumPy и pandas: практический тренажёр - pandas str.split и str.contains: фильтрация по домену email
Выделите домен адреса через .str.split и отфильтруйте записи по нему с .str.contains. Практическая задача.
NumPy и pandas: практический тренажёр - pandas CategoricalDtype: почему astype заменяет значения на NaN
Что происходит со значениями вне categories в pandas. Пример CategoricalDtype, astype и проверки пропусков, затем задача с проверкой.
NumPy и pandas: практический тренажёр - Очистка pandas: dropna, str.replace и удаление дублей
Как связать dropna, str.replace и удаление дублей в pandas. Пример очистки строк, порядок операций и задача с проверкой Python.
NumPy и pandas: практический тренажёр - Качество данных в pandas: пропуски, дубли и типы без изменений
Как проверить пропуски и дубли pandas без изменения таблицы. Пример диагностики DataFrame и задача на аудит качества данных с проверкой.
NumPy и pandas: практический тренажёр
