我有以下数据框
col
A a
A b
A c
B d
B e
C f
我想获得虚拟变量
a b c d e f
A 1 1 1 0 0 0
B 0 0 0 1 1 0
C 0 0 0 0 0 1
我怎么能得到这个?
我试过
df.col.get_dummies()
但我不能分组。
答案 0 :(得分:1)
您需要groupby
索引并汇总max
:
print (df.col.str.get_dummies().groupby(level=0).max())
a b c d e f
A 1 1 1 0 0 0
B 0 0 0 1 1 0
C 0 0 0 0 0 1
或者:
print (pd.get_dummies(df.col).groupby(level=0).max())
a b c d e f
A 1 1 1 0 0 0
B 0 0 0 1 1 0
C 0 0 0 0 0 1