我正在尝试使用Imputer获取缺失值。
我想跟踪所有缺少值的列,但是因为否则我不知道已经处理了其中的所有(列):
是否可以返回所有缺少值的列?


  归因笔记
  
  当axis = 0时,仅包含符合条件的缺失值的列为
  转换时丢弃。当axis = 1时,如果存在则引发异常
  是无法填写缺失值的行
  (例如,因为它们仅包含缺失值)。


import pandas as pd
import numpy as np
from sklearn.preprocessing import Imputer
data={'b1':[1,2,3,4,5],'b2':[1,2,4,4,0],'b3':[0,0,0,0,0]}
X= pd.DataFrame(data)
Imp = Imputer(missing_values=0)
print (Imp.fit_transform(X))

print(X)
   b1  b2  b3
0   1   1   0
1   2   2   0
2   3   4   0
3   4   4   0
4   5   0   0

runfile
[[ 1.    1.  ]
 [ 2.    2.  ]
 [ 3.    4.  ]
 [ 4.    4.  ]
 [ 5.    2.75]]

最佳答案

statistics_类的Imputer属性将返回每一列的填充值,包括删除的列。


  statistics_:形状数组(n_features,)
  如果轴== 0,则每个要素的插补填充值。


Imp.statistics_
array([3.  , 2.75,  nan])


获取具有所有“缺失”值的列的列名的示例。

nanmask = np.isnan(Imp.statistics_)

nanmask
array([False, False,  True])

X.columns[nanmask]
Index([u'b3'], dtype='object')

关于python - 列缺失值时预处理Sklearn Imputer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50854626/

10-12 21:32