Python (3/10)

📱Очистка данных: обработка пропусков, дубликатов и ошибок (3/10)

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

Обработка пропусков

Пропущенные значения (NaN) встречаются почти в каждом наборе данных. В pandas для них есть удобные методы:

  • dropna() — удаляет все строки или столбцы с пропусками. Можно указать, что удалять только при определённом количестве пропусков.
  • fillna() — заполняет пропуски значениями: средним, медианой, 0 или любым другим значением по вашему выбору.  Выбор метода зависит от задачи: иногда лучше удалить строки, а иногда замещать значения — чтобы не потерять важную информацию.

Работа с дубликатами

Дубликаты могут привести к завышению показателей и неверным выводам. В pandas выделяют:

  • duplicated() — показывает, какие строки повторяются
  • drop_duplicates() — удаляет повторяющиеся строки, оставляя первую или последнюю из них  Регулярная проверка и очистка дубликатов — обязательная часть подготовки данных.

Управление типами данных

Правильный тип данных важен для корректных вычислений и оптимизации памяти. Например, в числовом столбце лучше иметь int или float, а не строку. В pandas используют astype() для преобразования типов. Проверьте, чтобы даты были в формате datetime, а логические признаки — в bool, это упростит фильтрацию и анализ.

Пример полного цикла очистки в pandas

import pandas as pd

df = pd.read_csv('data.csv')

#Удаляем строки с пропусками в критичных столбцах

df = df.dropna(subset=['sales', 'date'])

#Заполняем пропуски в столбце 'region' значением 'Unknown'

df['region'] = df['region'].fillna('Unknown')

#Удаляем дубликаты

df = df.drop_duplicates()

#Преобразуем дату в datetime формат

df['date'] = pd.to_datetime(df['date'])

#Приводим числовой столбец к float

df['sales'] = df['sales'].astype(float) Такой подход позволит снизить шум в данных и повысить качество исходного материала для анализа.

Очистка — это не одноразовое действие, а постоянный процесс, который сопровождает любую аналитическую задачу.

Запомните, даже самый спокойный медведь умеет рычать, когда надо. Берегите голову, берегите данные — и пусть в вашем дне будет немного тишины, ясности и добрых переменных.