Как заменить 1 на другое значение в кодировке «горячей» - PullRequest
0 голосов
/ 06 мая 2019

Я хочу знать, как получить горячее кодирование в фрейме данных, а затем изменить значение 1 на другое значение в столбце.

например, есть фрейм данных:

   a      b      c
1  01     red   12
2  01     blue  5
3  02     blue  14
4  02     grey  4
5  03     grey  3


if I want to get:

   a      b         
1  01     (1,1,0)   
3  02     (0,1,1)   
5  03     (0,0,1)   

сначала измените список:

df=df.groupby('a')['b'].apply(list)

, затем измените серию на фрейм данных:

dict_df = {'a':df.index,'b':df.values}
df = pd.DataFrame(dict_df)

, затем используйте одно горячее кодирование:

mlb1 = MultiLabelBinarizer()
df = df.join(pd.DataFrame(mlb1.fit_transform(df.pop('b')),columns=mlb1.classes,index=df.index))

Какя могу сделать, чтобы получить новый фрейм данных как:

   a      b         
1  01     (12,5,0)   
3  02     (0,14,4)   
5  03     (0,0,3)
...