专栏首页SAMshare特征锦囊:怎么定义一个方法去填充数值变量的空值?

特征锦囊:怎么定义一个方法去填充数值变量的空值?

预计阅读时间:3分钟

今日锦囊

怎么定义一个方法去填充数值变量的空值?

这个锦囊和上一个差不多了,不过这个换一个方法 Imputer

同样的,我们还是造一个数据集:

# 本次案例使用的数据集
import pandas as pd
X = pd.DataFrame({'city':['tokyo',None,'london','seattle','san fancisco','tokyo'],
                  'boolean':['y','n',None,'n','n','y'],
                  'ordinal_column':['somewhat like','like','somewhat like','like','somewhat like','dislike'],
                  'quantitative_column':[1,11,-.5,10,None,20]})
X

可以看出,这个数据集有一个数值变量quantitative_columns,存在一行缺失值,我们直接调用sklearnpreprocessing方法里的Imputer

# 填充数值变量(基于Imputer的自定义填充器,用众数填充)
from sklearn.preprocessing import Imputer
class CustomQuantitativeImputer(TransformerMixin):
    def __init__(self, cols=None, strategy='mean'):
        self.cols = cols
        self.strategy = strategy
        
    def transform(self, df):
        X = df.copy()
        impute = Imputer(strategy=self.strategy)
        for col in self.cols:
            X[col] = impute.fit_transform(X[[col]])
        return X
    
    def fit(self, *_):
        return self
    
# 调用自定义的填充器
cqi = CustomQuantitativeImputer(cols = ['quantitative_column'], strategy='mean')
cqi.fit_transform(X)

今天的知识还有什么疑问的地方吗?欢迎留言咨询哦!

本文分享自微信公众号 - SAMshare(gh_8528ce7b7e80),作者:Flora

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 特征锦囊:怎么定义一个方法去填充分类变量的空值?

    之前我们说过如何删除掉缺失的行,但是如何我们需要的是填充呢?比如说用众数来填充缺失,或者用某个特定值来填充缺失值?这个也是我们需要掌握的特征工程的方法之一,对于...

    Sam Gor
  • Machine Learning-感知器分类算法详解

    选自 python-machine-learning-book on GitHub

    Sam Gor
  • MLK | 特征工程系统化干货笔记+代码了解一下(中)

    如果我们对变量进行处理之后,效果仍不是非常理想,就需要进行特征构建了,也就是衍生新变量。

    Sam Gor
  • JQuery中事件是否发生的判断

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

    大黄大黄大黄
  • ICCV 2019 | 解读北大提出的期望最大化注意力网络EMANet

    本文介绍笔者被 ICCV 2019 接受为 Oral 的论文 Expectation-Maximization Attention Networks for S...

    机器之心
  • ICCV 2019 Oral | 期望最大化注意力网络 EMANet 详解

    本文转自知乎,作者立夏之光。AI科技评论获授权转载,如需转载请联系原作者。原文链接:https://dwz.cn/3BFMz8pW

    AI科技评论
  • Exchange 2013 OU大于500新建用户无法查询OU

    近期一个项目中,在子域中部署了Exchange 2013 SP1,由于这边环境OU数量有4000+,导致新建用户时无法查询到组织单元,如下图:

    李珣
  • JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发

    时间静止不是简史
  • ajaxFileUpload+ThinkPHP+jqGrid 图片上传与显示

    zcqshine
  • Grafana安装部署

    Grafana支持Cloudera Manager数据源,因此可以搞一波把大数据集群中各种组件的监控都做到Grafana上。同时,Grafana提供了对Prom...

    Eights

扫码关注云+社区

领取腾讯云代金券