В документации 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