Как использовать SimpleImputer на одномерном массиве? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть набор данных с несколькими значениями NaN в моем столбце зависимой переменной. Я разделил набор на зависимые и независимые переменные, и в настоящее время я пытаюсь заменить все значения NaN в моем столбце зависимой переменной на 0. Однако при использовании SimpleImputer для этой цели я получаю сообщение об ошибке.

Вот мой код:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

"""
----- Read Dataset and Split into Dependent and Independent Variables: -----
"""
dataset = pd.read_csv('Salary_Data.csv')
x = dataset.iloc[:, 1:-1].values
y = dataset.iloc[:, -1].values

print("\nIndependent Variables: \n%s" % x)
print("\nDependent Variables: \n%s" % y)


"""
----- Fill in Missing Values: -----
"""
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values = np.nan, strategy = 'constant', fill_value = 0)
y = imputer.fit(y)

print("\nDependent Variables After Missing Values Adjusted: \n%s" % y)

Вот такая ошибка:

Expected 2D array, got 1D array instead:
array=[270000. 200000. 250000.     nan 425000.     nan     nan 252000. 231000.
     nan 260000. 250000.     nan 218000.     nan 200000. 300000.     nan

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете использовать функцию pandas.DataFrame.fillna, чтобы напрямую заполнить 0 во всех местах нан.

y.fillna(0, inplace=True)
...