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)
您可以使用以下方法在 pandas 上执行此操作:
ndf = df.fillna(df.mean())
Run Code Online (Sandbox Code Playgroud)
其中一列似乎存在问题,无法从原始文件中正确导入数值,因此这很可能是 Imputer 无法工作的原因。OP 正在查看它。
| 归档时间: |
|
| 查看次数: |
1775 次 |
| 最近记录: |