Полное руководство по предварительной обработке данных в Python: методы и примеры

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

  1. Обработка отсутствующих данных.
    Отсутствующие данные — распространенная проблема в наборах данных. Вот несколько методов обработки пропущенных значений:

a) Удаление пропущенных значений:

df.dropna(inplace=True)

b) Вменение пропущенных значений:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='mean')
df['column_name'] = imputer.fit_transform(df[['column_name']])
  1. Работа с выбросами.
    Выбросы могут существенно повлиять на статистический анализ. Давайте посмотрим, как обнаруживать и обрабатывать выбросы:

a) Обнаружение выбросов:

from scipy import stats
z_scores = stats.zscore(df['column_name'])
threshold = 3
outlier_indices = np.where(np.abs(z_scores) > threshold)

b) Обработка выбросов:

df = df[(np.abs(stats.zscore(df)) < threshold).all(axis=1)]
  1. Масштабирование функций.
    Масштабирование функций гарантирует, что все функции находятся в одинаковом масштабе, не позволяя одним переменным доминировать над другими. Вот два распространенных метода:

а) Стандартизация:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df['column_name'] = scaler.fit_transform(df[['column_name']])

b) Масштабирование мин-макс:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['column_name'] = scaler.fit_transform(df[['column_name']])
  1. Категорическое кодирование.
    Категорические переменные необходимо преобразовать в числовые представления. Вот два популярных метода кодирования:

a) Горячее кодирование:

pd.get_dummies(df, columns=['column_name'])

b) Кодировка метки:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['column_name'] = le.fit_transform(df['column_name'])
  1. Предварительная обработка текста.
    Текстовые данные часто требуют определенных этапов предварительной обработки. Давайте рассмотрим пример удаления знаков препинания и перевода текста в нижний регистр:
import string
def preprocess_text(text):
    text = text.lower()
    text = text.translate(str.maketrans('', '', string.punctuation))
    return text
df['column_name'] = df['column_name'].apply(preprocess_text)

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