【Q001】sklearn的LabelEncoder使用问题处理

在进行数据清洗过程中,为了便于计算处理,需要对字符串类型特征进行编码操作。
sklearn中的LabelEncoder方法可以支持这一操作。
具体用法
这里博主讲的比较清楚了,下面记录一下遇到的问题。

#数据清洗操作
def data_clean(op,trans):
    # 对操作表中的每个特征进行编码(1,2,3....)
    for feature in op.columns[2:]:
        print(op[feature].dtype)
        if op[feature].dtype == 'object':
            col_data=op[feature].fillna('NA')
            col_data[col_data=='']='NA'
            result = le.fit_transform(col_data)
            op[feature] = result
    print('op done')
    for feature in trans.columns[2:]:
        if trans[feature].dtype == 'object':
            col_data=trans[feature].fillna('NA')
            col_data[col_data=='']='NA'
            result=le.fit_transform(col_data)
            trans[feature]=result
    print('trans done')
    return op,trans

上面是常规的特征编码操作,注意在调用fit_transform前,需要对原数据中的缺失值和未知值(如空字符串)进行处理。

空值:在pandas中的空值是""
缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可

对于缺失值,fillna可以处理;
对于未知值,可以在判断后进行制定填充。

要注意的是这两个是不一样的,fillna()处理不了未知值,会产生Type Error。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值