【python】get_dummies()用法
目录
1. 基本作用
2. 语法
常用参数:
3. 示例讲解
(1)对 Series 使用
(2)对 DataFrame 中的列使用
(3)加前缀
(4)避免虚拟变量陷阱(drop_first=True)
1. 基本作用
pandas.get_dummies()
用于将 分类变量(categorical variable) 转换为 哑变量/指示变量(Dummy Variables),也叫 独热编码(One-Hot Encoding)。
👉 通俗点说:把字符串或类别列拆分成若干个二进制列(0 或 1),机器学习更容易处理。
2. 语法
pd.get_dummies(data, prefix=None, prefix_sep="_", dummy_na=False, columns=None, drop_first=False)
常用参数:
-
data:要转换的数据(Series 或 DataFrame)
-
prefix:新生成列的前缀
-
prefix_sep:前缀与值之间的分隔符(默认
_
) -
dummy_na:是否为缺失值生成一列(默认 False)
-
columns:指定要转换的列(DataFrame 时用)
-
drop_first:是否删除第一个类别(避免多重共线性,回归时常用)
3. 示例讲解
(1)对 Series 使用
import pandas as pds = pd.Series(["red", "green", "blue", "red"])
dummies = pd.get_dummies(s)
print(dummies)
👉 输出:
blue green red
0 0 0 1
1 0 1 0
2 1 0 0
3 0 0 1
(2)对 DataFrame 中的列使用
df = pd.DataFrame({"id": [1, 2, 3, 4],"color": ["red", "green", "blue", "red"],"size": ["S", "M", "L", "M"]
})# 对 color 列进行独热编码
df_dummies = pd.get_dummies(df, columns=["color"])
print(df_dummies)
👉 输出:
id size color_blue color_green color_red
0 1 S 0 0 1
1 2 M 0 1 0
2 3 L 1 0 0
3 4 M 0 0 1
(3)加前缀
df_dummies = pd.get_dummies(df, columns=["size"], prefix="SIZE")
print(df_dummies)
👉 输出:
id color SIZE_L SIZE_M SIZE_S
0 1 red 0 0 1
1 2 green 0 1 0
2 3 blue 1 0 0
3 4 red 0 1 0
(4)避免虚拟变量陷阱(drop_first=True)
df_dummies = pd.get_dummies(df, columns=["color"], drop_first=True)
print(df_dummies)
👉 输出(少一列,避免多重共线性):
id size color_green color_red
0 1 S 0 1
1 2 M 1 0
2 3 L 0 0
3 4 M 0 1
✅ 总结:
-
get_dummies()
→ 分类变量转 0/1 矩阵 -
columns
指定哪些列编码 -
prefix
/prefix_sep
控制列名 -
drop_first=True
→ 回归模型常用,避免虚拟变量陷阱