一 . 概述
使用pandas对Dataframe上进行One-Hot Encoding的例子。
二 . Pandas Dataframe 中的热编码。
首先我们创建一个DataFrame数据集。
1 | import pandas as pd |
pandas上有一个get_dummies
方法可以对DataFrame数据,实现我们想要的独热编码功能。
1 | pd.get_dummies(data['color'], prefix='color') ## 其中 prefix 为新的特征名称前缀 |
有时候我们可能会出现在预测数据集合里面存在 在训练集合里面没有的特质数据。比如 green
,这样会让独热编码出错。这种情况可以使用CategoricalDType方法来处理
1 | df['color'] = df['color'].astype(pd.CategoricalDtype(['blue', 'green'])) |
这样其它异常值会被忽略
使用pd.concat可以将新的数据列和原始数据链接起来
1 | df = pd.concat([df, pd.get_dummies(df['color'], prefix='color')], axis=1) |
也可以使用 dummy_na=True
参数保留 NaN
值为一个单独的独热编码
1 | df = pd.concat([df, pd.get_dummies(df['color'], prefix='color', dummy_na=True)], axis=1) |
最后结构如下图