Dataframe становится массивом numpy после использования SimpleImputer. Я хочу, чтобы он возвращал dataframe - PullRequest
1 голос
/ 13 февраля 2020

В приведенной ниже записной книжке после вложения пропущенных значений с помощью SimpleImputer кадр данных был преобразован в массив numpy. Как убедиться, что его тип остается самим кадром данных?

import pandas as pd
df1 = pd.read_excel("dummy.xlsx")

DataFrame without imputing the values..

imp = SimpleImputer(strategy='median')
df2=imp.fit_transform(df2)
df2

enter image description here

1 Ответ

1 голос
/ 13 февраля 2020

В документации sklearn.impute.SimpleImputer.fit_transform ясно сказано, что он вернет numpy.array:

Возвращает : X_newnumpy: массив формы [n_samples, n_features_new]

Преобразованный массив.

Таким образом, вы не можете "убедиться, что его тип остается в качестве фрейма данных". Тем не менее, вы, конечно, можете передать полученный numpy.array в конструкторе pandas.DataFrame()

from sklearn.impute import SimpleImputer
import pandas as pd
import numpy as np

# Mocking your data
df = pd.DataFrame(np.random.rand(10,3))
df[df > 0.9] = np.nan

imp = SimpleImputer(strategy='median')

# Feeding resulting numpy array from fit_transform directly to new df2
df2 = pd.DataFrame(imp.fit_transform(df))

Вот и все

>>> type(df2)
pandas.core.frame.DataFrame
...