Изучение различных методов заполнения значений NaN средними значениями в Pandas

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

Метод 1: использование fillna()со средним
Самый простой подход – использовать метод fillna()в сочетании с функцией mean()для заполните значения NaN средним значением столбца. Вот пример:

import pandas as pd
# Create a DataFrame with NaN values
data = {'A': [10, 20, None, 40, 50],
        'B': [None, 30, 40, None, 60]}
df = pd.DataFrame(data)
# Fill NaN values with column means
df_filled = df.fillna(df.mean())
# Print the filled DataFrame
print(df_filled)

Метод 2: использование transform()с mean()
Другой подход — использовать метод transform()вместе с mean()функция для замены значений NaN средним значением столбца. Этот метод сохраняет исходную структуру DataFrame. Вот пример:

import pandas as pd
# Create a DataFrame with NaN values
data = {'A': [10, 20, None, 40, 50],
        'B': [None, 30, 40, None, 60]}
df = pd.DataFrame(data)
# Fill NaN values with column means using transform()
df_filled = df.transform(lambda x: x.fillna(x.mean()))
# Print the filled DataFrame
print(df_filled)

Метод 3: использование apply()с mean()
Вы также можете использовать метод apply()вместе с mean()для заполнения значений NaN средним значением столбца. Этот метод обеспечивает большую гибкость для пользовательских расчетов. Вот пример:

import pandas as pd
# Create a DataFrame with NaN values
data = {'A': [10, 20, None, 40, 50],
        'B': [None, 30, 40, None, 60]}
df = pd.DataFrame(data)
# Define a function to fill NaN with column mean
def fillna_with_mean(column):
    return column.fillna(column.mean())
# Apply the function to fill NaN values
df_filled = df.apply(fillna_with_mean)
# Print the filled DataFrame
print(df_filled)

Метод 4: использование SimpleImputerиз scikit-learn
Если вы предпочитаете использовать scikit-learn, вы можете использовать класс SimpleImputerдля заполнения значений NaN средним значением. Этот метод предоставляет более расширенные возможности, такие как обработка пропущенных значений в определенных столбцах или использование различных стратегий. Вот пример:

import pandas as pd
from sklearn.impute import SimpleImputer
# Create a DataFrame with NaN values
data = {'A': [10, 20, None, 40, 50],
        'B': [None, 30, 40, None, 60]}
df = pd.DataFrame(data)
# Create a SimpleImputer object with the mean strategy
imputer = SimpleImputer(strategy='mean')
# Fit the imputer to the DataFrame
imputer.fit(df)
# Transform and fill NaN values
df_filled = pd.DataFrame(imputer.transform(df), columns=df.columns)
# Print the filled DataFrame
print(df_filled)

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

Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям и характеристикам вашего набора данных.