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编码,生成了新的虚拟变量列。

相关文章