Вычисление и вменение среднего значения с помощью dask-ml отлично работает при изменении всех столбцов, которые np.nan
:
imputer = impute.SimpleImputer(strategy='mean')
data = [[100, 2], [np.nan, np.nan], [70, 7]]
df = pd.DataFrame(data, columns = ['Weight', 'Age'])
x3 = imputer.fit_transform(df)
print(x3)
Weight Age
0 100.0 2.0
1 85.0 4.5
2 70.0 7.0
Но что, если мне нужно оставить Age
нетронутым? Можно ли указать, какие столбцы вменять?
Вы должны иметь возможность указать столбец с помощью
df.Weight = imputer.fit_transform(df.Weight)
или индексируя столбцы df.loc["Weight"]
Он должен иметь 2D-массив, я преобразовал код в iloc, но вы все равно можете использовать loc, изменив форму. df.iloc[:, 0:1] = imputer.fit_transform(df.iloc[:,0:1])
Это сработало. В качестве дополнительного комментария можно выбрать любое количество столбцов в iloc
для вычисления среднего значения, а не только один столбец или диапазон столбцов.
Если я правильно понял, то конечно можно. Чтобы выбрать 0-й, 1-й и 2-й столбцы, вы можете сделать следующее: df.iloc[:, [0, 1, 2]]
Не могли бы вы предоставить полный код? Я получаю
Expected 2D array, got 1D array instead