1、pandas.get_dummies使用场景
在对变量进行独热编码时使用,例如:某一列类别型变量是季节,取值为春、夏、秋、冬,当我们对其进行建模时,需要将其进行独热编码,这时:pandas.get_dummies便派上了用场。
2、参数详解
- data : array-like, Series, or DataFrame 输入的数据
- prefix : string, get_dummies转换后,列名的前缀,默认为None
- columns : 指定需要实现类别转换的列名 否则转换所有类别性的列
- dummy_na : bool, default False 增加一列表示空缺值,如果False就忽略空缺值
- drop_first : bool, default False 获得k中的k-1个类别值,去除第一个,防止出现多重共线性
3、注意小陷阱呀
若针对训练数据已经做好了独热编码并建立了模型,而新增的预测数据或分类数据的类别变量未包含完整的类别。此时直接使用pd.get_dummies,会发现与训练集得到的结果不一样。例如:训练数据中季节列中春、夏、秋、冬都出现过,而在新的测试数据中只出现了春与夏,两者的结果会不一样。如下:
为了避免出现这个情况,需要新增以下代码:
data['季节'] = data['季节'].astype(
'category',
categories=["春", "夏", "秋", "冬"]
)