Imputer 减少了我的数据框中列的大小

Abd*_*han 9 machine-learning pandas scikit-learn sklearn-pandas

print(np.shape(ar_fulldata_input_xx))
Run Code Online (Sandbox Code Playgroud)

输出:(9027, 1443)

现在我Imputer用来估算我的数据框的缺失值,ar_fulldata_input_xx如下所示。

fill_NaN = Imputer(missing_values=np.nan, strategy='mean', axis=0)
imputed_DF = pd.DataFrame(fill_NaN.fit_transform(ar_fulldata_input_xx))
Run Code Online (Sandbox Code Playgroud)

现在我检查我的估算数据框的大小,如下所示。

print(np.shape(imputed_DF))
Run Code Online (Sandbox Code Playgroud)

输出:(9027, 1442)

为什么列大小减一?

有什么办法可以在插补函数后找到哪一列正在混合?

我运行了以下代码行以删除具有完整“NAN”值或完整“0”值的所有列。

ar_fulldata_input_xx = ar_fulldata_input_xx.loc[:, (ar_fulldata_input_xx != 0).any(axis=0)]
Run Code Online (Sandbox Code Playgroud)

ar_fulldata_input_xx=ar_fulldata_input_xx.dropna(axis=1, how='all')
Run Code Online (Sandbox Code Playgroud)

joa*_*avf 4

您可以使用以下方法在 pandas 上执行此操作:

ndf = df.fillna(df.mean())
Run Code Online (Sandbox Code Playgroud)

其中一列似乎存在问题,无法从原始文件中正确导入数值,因此这很可能是 Imputer 无法工作的原因。OP 正在查看它。