行智能类似的数据压缩熊猫

时间:2018-05-18 18:45:32

标签: python pandas etl data-science

假设我有一个数据集

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]

提前谢谢。

2 个答案:

答案 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