我有一个包含大量列的数据集,我已经对我的应用程序进行了编程,如果给定列的任何值丢失,那么它将填充以均值作为 imputer 策略的 imputer 值。
但是,我有点担心,如果整个列的所有值都丢失了,那么 imputer 将如何执行,在这种情况下正确的方法是什么?
我有一个包含大量列的数据集,我已经对我的应用程序进行了编程,如果给定列的任何值丢失,那么它将填充以均值作为 imputer 策略的 imputer 值。
但是,我有点担心,如果整个列的所有值都丢失了,那么 imputer 将如何执行,在这种情况下正确的方法是什么?
如果在给定的列中,所有数据都丢失了,那么 Imputer 将丢弃该列。
这是一个示例,有 4 个样本和 2 列,其中一个样本有缺失值:
X = np.array([[1,1],[1,2],[1,1],[1,2],[1,np.nan]])
imputer = Imputer(missing_values='NaN', strategy='mean', axis=0)
print(imputer.fit_transform(X))
这打印出来
[[ 1. 1. ]
[ 1. 2. ]
[ 1. 1. ]
[ 1. 2. ]
[ 1. 1.5]]
但是,如果第二列中的所有数据都丢失:
X = np.array([[1,np.nan],[1,np.nan],[1,np.nan],[1,np.nan],[1,np.nan]])
imputer = Imputer(missing_values='NaN', strategy='mean', axis=0)
print(imputer.fit_transform(X))
我们获得:
[[ 1.]
[ 1.]
[ 1.]
[ 1.]
[ 1.]]
在这种情况下,这种默认行为可能是正确的方法,因为无论如何都不能使用这个列(即这个特性)。