python 分类变量转为哑变量_超级详细的特征哑变量处理

这里全程以df这个为例来讲解

import pandas as pd

df=pd.DataFrame({'性别':['男','女','男','女'],'age':[2,3,4,3]})

df

get_dummies处理

pd.get_dummies(df,columns=['性别','age'])

get_dummies可以对多列(字符型和数值型)直接进行哑变量编码

缺点:如果在测试集中出现了训练集没有出现过的类型,简单的用get_dummies会出现错误,比如训练集中的性别是男、女,而在测试集中有男、女、未知这三种类型的特征出现,直接用get_dummies处理的话两个数据集生成的哑变量特征数不一致。

标题OneHotEncoder

对于OneHotEncoder只能对于数值型特征进行编码,对于字符串编码会报错

import warnings

warnings.filterwarnings("ignore")

from sklearn.preprocessing import OneHotEncoder

enc=OneHotEncoder(sparse=False).fit(df[['age']])

enc.transform([[2],[4],[3]])

这里如果transfrom出现的是fit没有出现过的类型,会报错,有以下两种处理办法࿱

你可能感兴趣的:(python,分类变量转为哑变量)