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}
例子:

  1. import pandas as pd
  2. df = pd.DataFrame([
  3. ['green' , 'A'],
  4. ['red' , 'B'],
  5. ['blue' , 'A']])
  6. df.columns = ['color', 'class']
  7. pd.get_dummies(df)

get_dummies 前:
pandas.get_dummies 的用法 - 图1
get_dummies 后:
pandas.get_dummies 的用法 - 图2
上述执行完以后再打印df 出来的还是get_dummies 前的图,因为你没有写

  1. df = pd.get_dummies(df)• 1

可以对指定列进行get_dummies

  1. pd.get_dummies(df.color)

pandas.get_dummies 的用法 - 图3

将指定列进行get_dummies 后合并到元数据中

  1. df = df.join(pd.get_dummies(df.color))

pandas.get_dummies 的用法 - 图4