我正在尝试使用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/