Строка мудрого сжатия данных Pandas - PullRequest
0 голосов
/ 18 мая 2018

Предположим, у меня есть набор данных

A B 
1 k 
1 g 
1 e 
2 g 
2 e 
3 d 

После применения одного горячего кодирования с пандами я получаю:

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 голосов
/ 18 мая 2018

Вы можете использовать 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
0 голосов
/ 18 мая 2018

Может быть 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
...