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')
答案 0 :(得分:3)
您可以使用以下方法在熊猫上进行:
ndf = df.fillna(df.mean())
似乎其中一个列没有正确导入原始文件中的数值,因此很可能这就是Imputer无法正常工作的原因。 OP正在考虑它。