1

在下面的笔记本中,在使用 SimpleImputer 输入缺失值后,数据帧被转换为 numpy 数组,我如何确保它的类型保持为数据帧本身?

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

DataFrame 没有估算值..

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

在此处输入图像描述

4

1 回答 1

1

的文档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
于 2020-02-13T12:27:49.960 回答