在下面的笔记本中,在使用 SimpleImputer 输入缺失值后,数据帧被转换为 numpy 数组,我如何确保它的类型保持为数据帧本身?
import pandas as pd
df1 = pd.read_excel("dummy.xlsx")
imp = SimpleImputer(strategy='median')
df2=imp.fit_transform(df2)
df2
在下面的笔记本中,在使用 SimpleImputer 输入缺失值后,数据帧被转换为 numpy 数组,我如何确保它的类型保持为数据帧本身?
import pandas as pd
df1 = pd.read_excel("dummy.xlsx")
imp = SimpleImputer(strategy='median')
df2=imp.fit_transform(df2)
df2
的文档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