У меня есть набор данных с несколькими столбцами, которые я хочу горячо кодировать.Однако я не хочу иметь кодировку для каждого из них, поскольку указанные столбцы связаны с указанными элементами.То, что я хочу, это один «набор» переменных-пустышек, который использует все столбцы.См. Мой код для лучшего объяснения.
Предположим, мой фрейм данных выглядит следующим образом:
In [103]: dum = pd.DataFrame({'ch1': ['A', 'C', 'A'], 'ch2': ['B', 'G', 'F'], 'ch3': ['C', 'D', 'E']})
In [104]: dum
Out[104]:
ch1 ch2 ch3
0 A B C
1 C G D
2 A F E
Если я выполню
pd.get_dummies(dum)
Вывод будет
ch1_A ch1_C ch2_B ch2_F ch2_G ch3_C ch3_D ch3_E
0 1 0 1 0 0 1 0 0
1 0 1 0 0 1 0 1 0
2 1 0 0 1 0 0 0 1
Однако я хотел бы получить что-то вроде этого:
A B C D E F G
1 1 1 0 0 0 0
0 0 1 1 0 0 1
1 0 0 0 1 1 0
Вместо того, чтобы иметь несколько столбцов, представляющих кодировку, например, ch1_A
и ch1_C
, я бы хотел иметь толькоодна группа (A
, B
и т. д.) со значением 1
при обнаружении любого из значений в столбцах ch1
, ch2
, ch3
.
Для уточненияв моем исходном наборе данных одна строка не будет содержать одно и то же значение (A, B, C ...) более одного раза;он просто появится в одном из столбцов.