python - 如何在 sklearn 中修复这个自定义转换器?
问题描述
我编写了这个简单的自定义转换器,用 0 填充特定列中的 na。当我在我的数据集上 fit_transform 时,它不会在指定列中填充 nas。我没有在我的代码中看到问题。
class CustomImputer(BaseEstimator, TransformerMixin):
def fit(self, X, y=None):
return self
def transform(self, X, y=None):
for col in ('PavedDrive', 'GarageQual', 'GarageFinish', 'FireplaceQu', 'KitchenQual', 'CentralAir', 'HeatingQC', 'BsmtExposure', 'BsmtCond', 'BsmtQual', 'ExterCond', 'ExterQual', 'Street'):
X[col].fillna(0)
return X
我希望返回的数据框是指定列用 0 填充 nas 的数据框,但是,我得到了一个具有相同空值的数据框。
解决方案
您从未将fillna
操作分配给新变量。使用
X[col].fillna(0)
不会发生在原地。而是使用:
X.loc[:,col] = X[col].fillna(0)
推荐阅读
- php - 使用 PHP 从 MySQL 查询中没有返回行,而手动运行查询返回行
- jpa - @Inject @Stateless-bean 到 @Singleton/@ApplicationScoped-bean
- c# - 使用 XAML 的动态网格行数和列数
- unity3d - 如何让玩家在忽略旋转和重力的情况下移动?
- javascript - 调用函数时未捕获的引用错误
- spring-boot - 将 JDBC 查询信息添加到 opentracing/Jaeger 跨度
- systemd - systemd boot:从 U-Boot 环境中为 eth0 应用 IP 地址?
- firebase - 如何创建具有特定区域的项目
- php - 在定义挂钩的函数内使用 IF 条件
- javascript - 我可以从 HttpResponseRedirect 调用 location.reload() 吗?