Чтобы заменить пропущенные значения в Python, вы можете использовать различные методы в зависимости от типа данных, с которыми вы работаете. Вот несколько распространенных подходов с примерами кода:
- Использование библиотеки 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)
- Использование библиотеки 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)
- Использование библиотеки 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)
- Использование fillna() с прямой или обратной заливкой.
Вы можете использовать метод fillna() с параметром ffill (прямая заливка) или bfill (обратная заливка) для переноса вперед или назад последнего известного значения.
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)