前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >特征锦囊:怎么定义一个方法去填充数值变量的空值?

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

作者头像
Sam Gor
发布2020-01-15 16:50:56
1.4K0
发布2020-01-15 16:50:56
举报
文章被收录于专栏:SAMshareSAMshare

预计阅读时间:3分钟

今日锦囊

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

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

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

代码语言:javascript
复制
# 本次案例使用的数据集
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

代码语言:javascript
复制
# 填充数值变量(基于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)

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAMshare 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日锦囊
    • 怎么定义一个方法去填充数值变量的空值?
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档