сохранение имен столбцов в предварительной обработке sklearn с нормализатором - PullRequest
0 голосов
/ 11 июля 2020

У меня есть кадр данных pandas, как показано ниже.

data = {'First Column Name':  ['12.513362', '13.081390', '15.045193'],
        'Second Column Name': ['24.597206', '25.526964', '29.153882'],
        '3rd Column Name':  ['nan', 'nan', 'nan'],
        '4th Column Name':  ['nan', '2.545', '3.89'],
        }

df = pd.DataFrame (data, columns = ['First Column Name','Second Column Name','3rd Column Name', '4th Column Name'])

df имеет три строки и 4 столбца. Теперь я применяю следующую предварительную обработку с нормализацией.

fill_NaN = SimpleImputer(missing_values=np.nan, strategy='mean')
df = pd.DataFrame(fill_NaN.fit_transform(df))
normalizer = preprocessing.Normalizer().fit(df)
df=normalizer.transform(df) 

Я получаю массив out NumPy из 3 строк и 3 столбцов. Отбрасывается один столбец, содержащий все nan, что нормально.

Как я могу сохранить исходные имена столбцов с этой нормализацией?

1 Ответ

1 голос
/ 11 июля 2020

SimpleImputer отвечает за удаление столбца здесь. Вы можете определить, какой столбец (индекс) отбрасывается с помощью атрибута statistics_: это будет np.nan.

statistics_: массив формы (n_features,)

...

Во время преобразования характеристики, соответствующие статистике np.nan, будут отброшены.

https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...