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

时间:2018-02-19 02:37:35

标签: pandas machine-learning scikit-learn sklearn-pandas

print(np.shape(ar_fulldata_input_xx))
  

输出:(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))

现在我按如下方式检查我估算的数据框的大小。

print(np.shape(imputed_DF))
  

输出:(9027,1442)

为什么列大小减少一个?

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

我运行了以下代码行来删除整个" NAN"价值或整个" 0"值。

ar_fulldata_input_xx = ar_fulldata_input_xx.loc[:, (ar_fulldata_input_xx != 0).any(axis=0)]

ar_fulldata_input_xx=ar_fulldata_input_xx.dropna(axis=1, how='all')

1 个答案:

答案 0 :(得分:3)

您可以使用以下方法在熊猫上进行:

ndf = df.fillna(df.mean())

似乎其中一个列没有正确导入原始文件中的数值,因此很可能这就是Imputer无法正常工作的原因。 OP正在考虑它。