Эффективные способы замены пропущенных значений средним значением в Pandas

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

Метод 1: использование функции fillna()

import pandas as pd
# Create a DataFrame with missing values
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 6, 7, 8, 9],
        'C': [10, 11, 12, None, 14]}
df = pd.DataFrame(data)
# Replace missing values with the mean
df_filled = df.fillna(df.mean())
# Print the updated DataFrame
print(df_filled)

Метод 2: использование функции transform()

import pandas as pd
# Create a DataFrame with missing values
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 6, 7, 8, 9],
        'C': [10, 11, 12, None, 14]}
df = pd.DataFrame(data)
# Replace missing values with the mean
df_filled = df.transform(lambda x: x.fillna(x.mean()))
# Print the updated DataFrame
print(df_filled)

Метод 3: использование класса SimpleImputerиз scikit-learn

import pandas as pd
from sklearn.impute import SimpleImputer
# Create a DataFrame with missing values
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 6, 7, 8, 9],
        'C': [10, 11, 12, None, 14]}
df = pd.DataFrame(data)
# Create an imputer object with the mean strategy
imputer = SimpleImputer(strategy='mean')
# Fit and transform the DataFrame
df_filled = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)
# Print the updated DataFrame
print(df_filled)

Метод 4. Использование функции fillna()с вычисленным средним значением

import pandas as pd
import numpy as np
# Create a DataFrame with missing values
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 6, 7, 8, 9],
        'C': [10, 11, 12, None, 14]}
df = pd.DataFrame(data)
# Calculate the mean excluding missing values
mean = np.mean(df.values[~np.isnan(df.values)])
# Replace missing values with the mean
df_filled = df.fillna(mean)
# Print the updated DataFrame
print(df_filled)

Замена пропущенных значений средним значением — распространенная стратегия предварительной обработки данных. В этой статье мы рассмотрели четыре различных метода достижения этой цели с помощью панд. Функция fillna(), функция transform(), SimpleImputerscikit-learn и вычисление среднего значения вручную — все это эффективные способы обработки пропущенных значений. Используя эти методы, вы можете быть уверены, что ваши данные готовы к дальнейшему анализу и моделированию.