Методы замены пропущенных значений в Python: примеры кода

Чтобы заменить пропущенные значения в Python, вы можете использовать различные методы в зависимости от типа данных, с которыми вы работаете. Вот несколько распространенных подходов с примерами кода:

  1. Использование библиотеки pandas:
    Pandas предоставляет метод fillna() для замены отсутствующих значений в DataFrame.
import pandas as pd
# Create a DataFrame with missing values
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 6, 7, 8, 9]}
df = pd.DataFrame(data)
# Replace missing values with a specific value
df_filled = df.fillna(0)
print(df_filled)
# Replace missing values with the mean of the column
df_filled_mean = df.fillna(df.mean())
print(df_filled_mean)
  1. Использование библиотеки scikit-learn:
    Scikit-learn предоставляет класс SimpleImputer для замены пропущенных значений статистическими показателями.
from sklearn.impute import SimpleImputer
import numpy as np
# Create a 2D array with missing values
data = np.array([[1, 2, np.nan],
                 [4, np.nan, 6],
                 [7, 8, 9]])
# Replace missing values with the mean of each column
imputer = SimpleImputer(strategy='mean')
data_filled_mean = imputer.fit_transform(data)
print(data_filled_mean)
  1. Использование библиотеки numpy:
    функциюwhere() в NumPy можно использовать для условной замены пропущенных значений.
import numpy as np
# Create a 1D array with missing values
data = np.array([1, np.nan, 3, 4, np.nan])
# Replace missing values with a specific value
data_filled = np.where(np.isnan(data), 0, data)
print(data_filled)
  1. Использование fillna() с прямой или обратной заливкой.
    Вы можете использовать метод fillna() с параметром ffill (прямая заливка) или bfill (обратная заливка) для переноса вперед или назад последнего известного значения.
  2. li>

import pandas as pd
# Create a Series with missing values
data = pd.Series([1, np.nan, 3, np.nan, 5])
# Forward fill missing values
data_filled_forward = data.fillna(method='ffill')
print(data_filled_forward)
# Backward fill missing values
data_filled_backward = data.fillna(method='bfill')
print(data_filled_backward)