假设我有一个数据集
A B
1 k
1 g
1 e
2 g
2 e
3 d
使用pandas应用一个热编码后,我得到:
A B_k B_g B_e . . . .
1 1 0 0
1 0 1 0
1 0 0 1
2 .
2 .
3 .
我希望输出为
A B_k B_g B_e
1 1 1 1
2 0 1 0
等等。
我想得到类似的行值EG:1在列[A]中作为一行和OHE列[B]
提前谢谢。
答案 0 :(得分:0)
也许crosstab
?
pd.crosstab(df.A,df.B)
B d e g k
A
1 0 1 1 1
2 0 1 1 0
3 1 0 0 0
答案 1 :(得分:0)
您可以在热门编码之后使用groupby
:
df.groupby(['A']).sum()
>>>
B_d B_e B_g B_k
A
1 0 1 1 1
2 0 1 1 0
3 1 0 0 0