Scikit-Learn Imputer уменьшает размеры при использовании его в два раза - PullRequest
0 голосов
/ 21 сентября 2018

Я понимаю, что: «Когда ось = 0, столбцы, которые содержали только пропущенные значения при подборе, отбрасываются при преобразовании».Поэтому, когда я впервые использую Imputer, все значения NaN заменяются средними, а столбцы, содержащие только пропущенные значения, заменяются.Мой код:

df.shape
(1430,488)

#1. delete all columns containing 0
df=df.loc[:, (df != 0).any(axis=0)]
df.shape
(1430,370)

#2. replace all Nan Values with mean
from sklearn.preprocessing import Imputer
imr = Imputer(missing_values='NaN', strategy='mean', axis=0)
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
imputed_data.shape
(1430,321)

#3. replace all 0 Values with mean
from sklearn.preprocessing import Imputer
imr = Imputer(missing_values=0, strategy='mean', axis=0)
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
imputed_data.shape
(1430,167)

Итак, на первом шаге я удаляю все столбцы, содержащие 0, а затем на шаге 2 средство удаления удаляет все столбцы только с NaN.Но почему происходит уменьшение размера, когда дело доходит до шага 3 до 167 столбцов?Я уже удалил все столбцы только с 0 на шаге 1?

Другой вопрос: как я могу преобразовать новый массив numpy обратно в pandas, не теряя заголовок?

Спасибо, R

...