我知道:“当axis=0时,在fit处只包含缺失值的列在转换时被丢弃。” 所以我第一次使用插补器时,所有NaN值都被平均值替换,只包含缺失值的列被替换。 我的代码:
df.shape
(1430,488)
#1. delete all columns containing 0
df=df.loc[:, (df != 0).any(axis=0)]
df.shape
(1430,370)
#2. replace all Nan Values with mean
from sklearn.preprocessing import Imputer
imr = Imputer(missing_values='NaN', strategy='mean', axis=0)
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
imputed_data.shape
(1430,321)
#3. replace all 0 Values with mean
from sklearn.preprocessing import Imputer
imr = Imputer(missing_values=0, strategy='mean', axis=0)
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
imputed_data.shape
(1430,167)
因此,在第一步中,我删除所有包含0的列,然后在第二步中,插补器删除所有只有NaN的列。但是,为什么在第3步到第167列时维度会减少呢?我已经删除了步骤1中只有0的所有列?你知道吗
另一个问题是如何将新的numpy数组转换回pandas而不丢失标头?你知道吗
谢谢你, 右
目前没有回答
相关问题 更多 >
编程相关推荐