Предположим, у меня есть подобный df, который регистрирует выбор игровых персонажей каждым из 6 игроков (3v3) в компьютерной игре.
data = {'Pick_1_team1': ['A','A','A','B','C'],
'Pick_2_team1': ['D','D','E','F','F'],
'Pick_3_team1': ['G','G','A','M','O'],
'Pick_1_team2': ['Q','Q','S','S','A'],
'Pick_2_team2': ['V','W','X','A','B'],
'Pick_3_team2': ['R','X','W','W','R']}
df = pd.DataFrame(data)
df_enc = pd.get_dummies(df)
Когда я использую get_dummies panda, я получаю разреженный df со следующей структурой (пример, не фактическая кодировка из примера df)
Каждый слот выбора имеет все возможные варианты выбора (AZ) для обеих команд.
| P1_T1_A | P1_T1_B | P1_T1_C | ... | P2_T1_A | ... | P3_T1_Z | ... | P1_T2_A | P1_T2_B | ... | P3_T2_Z |
|---------|---------|---------|-----|---------|-----|---------|-----|---------|---------|-----|---------|
| 0 | 0 | 1 | ... | 0 | ... | 0 | ... | 1 | 0 | ... | 1 |
| 1 | 0 | 0 | ... | 0 | ... | 0 | ... | 0 | 1 | ... | 1 |
| 1 | 0 | 0 | ... | 0 | ... | 0 | ... | 0 | 0 | ... | 0 |
Что нормально, но если учесть большее пространство ввода (с более чем 150 возможными выборами), таблица станет очень большой. Чтобы сделать его более управляемым, я подумал о том, чтобы каким-то образом кодировать его в следующий формат:
Один столбец на категорию (символ) x 2 для каждой команды, 1, если этот персонаж был выбран, 0, если нет.
| T1_A | T1_B | T1_C | ... | T1_Z | ... | T2_A | T2_B | ... | T2_Z |
|------|------|------|-----|------|-----|------|------|-----|------|
| 0 | 0 | 1 | ... | 0 | ... | 1 | 1 | ... | 1 |
| 1 | 1 | 1 | ... | 0 | ... | 0 | 0 | ... | 1 |
| 1 | 0 | 0 | ... | 0 | ... | 0 | 0 | ... | 0 |
Это ограничит количество функций до количества выборов x количество команд (26 букв * 2 команды) вместо возможных выборов x количество выборов x количество команд (26 букв * 3 выбора * 2 команды). панда сделать это через любую встроенную функцию? Если нет, то какой был бы самый простой способ go об этом?
Любая помощь приветствуется! Спасибо.