【发布时间】:2020-04-12 22:34:53
【问题描述】:
我正在尝试在数据集中估算 5 列,但每列中没有任何空白,我需要将具有 0 的行估算为均值/中位数,我独立尝试了以下 2 种替代方法,如下所示
from sklearn.impute import SimpleImputer
impute = SimpleImputer(missing_values=0,strategy='mean')
impute.fit_transform(train[['Glucose','BloodPressure','SkinThickness','Insulin','BMI']])
与
train["Glucose"].fillna(train["Glucose"].mean(), inplace=True)
为了交叉检查,我尝试在每列 train['Glucose'].unique() 中找到唯一值,在每个替代项之后查找插补后是否有任何 0。
输出确实显示为 0 如下,表明上述两种方法均无效。
输出
array([148, 85, 183, 89, 137, 116, 78, 115, 197, 125, 110, 168, 139,
189, 166, 100, 118, 107, 103, 126, 99, 196, 119, 143, 147, 97,
145, 117, 109, 158, 88, 92, 122, 138, 102, 90, 111, 180, 133,
106, 171, 159, 146, 71, 105, 101, 176, 150, 73, 187, 84, 44,
141, 114, 95, 129, 79, **0**, 62, 131, 112, 113, 74, 83, 136,
80, 123, 81, 134, 142, 144, 93, 163, 151, 96, 155, 76, 160,
124, 162, 132, 120, 173, 170, 128, 108, 154, 57, 156, 153, 188,
152, 104, 87, 75, 179, 130, 194, 181, 135, 184, 140, 177, 164,
91, 165, 86, 193, 191, 161, 167, 77, 182, 157, 178, 61, 98,
127, 82, 72, 172, 94, 175, 195, 68, 186, 198, 121, 67, 174,
199, 56, 169, 149, 65, 190], dtype=int64)
如果有人能指导我在哪里我的代码有错误或任何其他估算方式,我将不胜感激。
【问题讨论】:
-
标记为已回答的问题并没有具体回答我的问题,我不想用 0 替换空格,我想用 0 替换来表示。请求@jezrael 重新打开帖子。我花了过去 30 分钟检查,但没有发现任何有用的信息来帮助我的查询。
-
所以两个解决方案都失败了?
-
是的,我再次检查了建议的问题,他们都尝试将 nan 替换为 0,我认为我的查询略有不同。我可能会犯一些概念错误。
标签: python scikit-learn