看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
虚拟变量(Dummy Variables) ,又称虚设变量、名义变量或哑变量,用以反映质的属性的一个人工变量,是量化了的自变量,通常取值为0或1。经常用在 one-hot 特征提取。
语法结构如下:
pd.get_dummies(data, prefix=None,
prefix_sep='_', dummy_na=False,
columns=None, sparse=False,
drop_first=False, dtype=None)
其中:
简单说,pd.get_dummies()
是将一个或者多个列的去重值做为新表的列,每个列的值由0和1组成,在原来此位为此列名的值为1,不是的为0,这样就形成了一个由 0 和1 组成的特征矩阵。
虚拟变量/哑变量在特征工程、数据建模、机器学习等领域有非常重要的作用。
df = pd.DataFrame({'key': list('bbacab'), 'data1': range(6)})
df
'''
key data1
0 b 0
1 b 1
2 a 2
3 c 3
4 a 4
5 b 5
'''
pd.get_dummies(df['key'])
'''
a b c
0 0 1 0
1 0 1 0
2 1 0 0
3 0 0 1
4 1 0 0
5 0 1 0
'''
用 prefix
给新表列名增加前缀:
pd.get_dummies(df['key'], prefix='key')
'''
key_a key_b key_c
0 0 1 0
1 0 1 0
2 1 0 0
3 0 0 1
4 1 0 0
5 0 1 0
'''
可以直接传入 DataFrame 使用:
df = pd.DataFrame({'A': ['a', 'b', 'a'],
'B': ['c', 'c', 'b'],
'C': [1, 2, 3]})
df
'''
A B C
0 a c 1
1 b c 2
2 a b 3
'''
# 最后一列不会被处理
pd.get_dummies(df)
'''
C A_a A_b B_b B_c
0 1 1 0 0 1
1 2 0 1 0 1
2 3 1 0 1 0
'''
指定列:
pd.get_dummies(df, columns=['A'])
'''
B C A_a A_b
0 c 1 1 0
1 c 2 0 1
2 b 3 1 0
'''
pandas.from_dummies
函数用于将独热编码(One-Hot Encoding)还原为原始的分类变量。独热编码是一种将分类变量转换为多个二进制列的编码方式,而 from_dummies
则可以将这些二进制列重新合并为原始的分类变量。
df = pd.DataFrame({"a": [1, 0, 0, 1], "b": [0, 1, 0, 0],
"c": [0, 0, 1, 0]})
df
'''
a b c
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
'''
pd.from_dummies(df)
'''
0 a
1 b
2 c
3 a
'''
详见:pandas pd.from_dummies() 独热编码还原分类变量 。
更新时间:2024-08-14 08:09:30 标签:pandas 虚拟变量 哑变量