pandas中的one-hot编码方法
2023-02-24 00:00:00
pandas
pandas中的one-hot编码是指将分类数据转换为0和1的二元组表示方式,以便于后续的分析和建模。
在pandas中,可以使用get_dummies()函数来实现one-hot编码,其函数原型如下:
pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)
其中,参数说明如下:
- data:需要进行one-hot编码的数据。
- prefix:表示对每个变量的类别前缀进行命名,默认为变量名。
- prefix_sep:表示前缀和变量名之间的分隔符,默认为_。
- dummy_na:表示是否为缺失值(NaN)创建虚拟变量,默认为False。
- columns:表示要进行one-hot编码的列,默认为所有列。
- sparse:表示是否返回稀疏矩阵,默认为False。
- drop_first:表示是否删除第一个虚拟变量,避免共线性问题,默认为False。
- dtype:表示生成的数据类型。
下面是一个简单的示例代码,假设有一个数据集df,其中color和size是分类变量,需要进行one-hot编码:
import pandas as pd df = pd.DataFrame({'color': ['red', 'green', 'blue', 'green', 'red'], 'size': ['M', 'L', 'S', 'M', 'L']}) dummies = pd.get_dummies(df, columns=['color', 'size']) print(dummies)
运行结果如下:
color_blue color_green color_red size_L size_M size_S 0 0 0 1 0 1 0 1 0 1 0 1 0 0 2 1 0 0 0 0 1 3 0 1 0 0 1 0 4 0 0 1 1 0 0
可以看到,原数据集中的color和size列被分别进行了one-hot编码,生成了新的虚拟变量列。
相关文章