Я хочу знать, как получить горячее кодирование в фрейме данных, а затем изменить значение 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)