get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档
pandas.getdummies(data, prefix=None, prefix_sep=’’, dummy_na=False, columns=None, sparse=False, drop_first=False)[source]
参数说明:
- data : array-like, Series, or DataFrame 输入的数据
- prefix : string, list of strings, or dict of strings, default None get_dummies转换后,列名的前缀
- columns : list-like, default None 指定需要实现类别转换的列名
- dummy_na : bool, default False 增加一列表示空缺值,如果False就忽略空缺值
- drop_first : bool, default False 获得k中的k-1个类别值,去除第一个
离散特征的编码分为两种情况:**
1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码
2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}
例子:
import pandas as pd
df = pd.DataFrame([
['green' , 'A'],
['red' , 'B'],
['blue' , 'A']])
df.columns = ['color', 'class']
pd.get_dummies(df)
get_dummies 前:
get_dummies 后:
上述执行完以后再打印df 出来的还是get_dummies 前的图,因为你没有写
df = pd.get_dummies(df)• 1
可以对指定列进行get_dummies
pd.get_dummies(df.color)
将指定列进行get_dummies 后合并到元数据中
df = df.join(pd.get_dummies(df.color))