离散编码问题,LabelEncoder和OneHotEncoder

在id处理与nlp处理中,离散编码的处理比较重要。可以考虑用sklearn库LableEncoder,而涉及到01编码或多重属性编码时用OneHotEncoder

import pandas as pd
from sklearn.preprocessing import LabelEncoder
data=pd.DataFrame({'A':[1,2,3,4],'B':[5,6,7,8],'C':[9,10,11,12]})
for i in data:
    try:
        data[i]=LabelEncoder().fit_transform(apply(int))#transform操作就是转为数字表示形式。
    except:
        data[i]=LabelEncoder().fit_transform(data[i])
    print(data[i])
print(data)#0 1 2 3
from sklearn.preprocessing import OneHotEncoder#采用位状态寄存器来对个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。
b=OneHotEncoder()
b.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])#每个列表一行;每列一个属性,每个属性个数为01位数
print(b.transform([[0,1,1]]).toarray())#每个属性中,数从小到大,1从左到右
#[[1. 0. 0. 1. 0. 0. 1. 0. 0.]]

也可以下图关注公众号,主要发布算法与Python方面的基础技巧:
也可以关注公众号,主要发布算法与Python方面的基础技巧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值