类别变量的数值转换_独热编码_one-hot

博客介绍了数据预处理中的类别变量转换,重点讲解了One-Hot编码的概念和应用。通过举例说明如何将含有A、B、C三个值的Rank变量转换为数值型,以适应后续分析和模型构建。同时提到了Sklearn库中的OneHotEncoder与Pandas的get_dummies函数的等效使用。此外,还对比了另一种转换方式——label encoding,指出其可能存在的问题,如无法反映类别本质且编码不固定。最后给出了在类别变量不超过2个时进行label encoding的示例代码。
摘要由CSDN通过智能技术生成

在数据准备阶段如果含有类别变量,可以对它进行 one-hot 编译,将它转换成数值再进行后续分析考虑放入模型等.

举个例子,假如 Rank 包含A,B,C三个值:

Rank
A
B
C
A
A
B

解决的办法就是向数据集中再加入三个属性,在此命名为Rank_A,Rank_B,Rank_C,如果Rank的值为A,那么这三个属性依次为(1,0,0),Rank值为B,则为(0,1,0),C为(0,0,1).每个属性都为Boolean,1代表是,0代表否.

输出结果:

   Rank_A  Rank_B  Rank_C
0       1       0       0
1       0       1       0
2       0       0       1
3       1       0       0
4       1       0       0
5       0       1       0

 

Python代码:

import pandas as pd

df=pd.read_csv(r'...\dummy_test.txt')#读入文件

#Rank是特征名称
#drop_first是函数参数,是否保存原来的列,就是没有进行独热编译的原始列,默认是False
dummies_df = pd.get_dummies(df.Rank,drop_first=True) 
dummies_d
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值