在数据准备阶段如果含有类别变量,可以对它进行 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