Я хочу, чтобы преобразовать панд df в One_hot pandas df.Лучший способ описать это может быть на примере:
Файл df, который у меня есть, выглядит следующим образом:
ID|DEV |STATE|
1 |DEV1|on
2 |DEV2|on
3 |DEV1|off
3 |DEV3|on
3 |DEV3|off
Я знаю, что неуникальный идентификатор не подходит, и я над ним работаю.
Затем я поворачиваю таблицу:
data.pivot_table(index='ID', columns=['DEV'], values='STATE', dropna=True, aggfunc='first')
Что приводит к следующему
ID|DEV1|DEV2|DEV3
1 |on | NaN| NaN
2 | NaN| on | NaN
3 | off| NaN| on
4 | NaN| NaN| off
И теперь я хотел бы получить что-то вроде этого:
ID|DEV1.on|DEV1.off|DEV2.on|DEV3.on|DEV3.off
1 | 1 | 0| 0| 0| 0
2 | 0 | 0| 1| 0| 0
3 | 0 | 1| 0| 1| 0
4 | 0 | 0| 0| 0| 1
Я знаю, как объединить имена столбцов, но я не знаю, как получить стиль "one-hot".Может быть, это возможно с aggfunc?
Можете ли вы мне помочь?
Fabian