преобразовать несколько coulmns в категории одного столбца в пандах

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

данные:

1 ответ

Это можно решить с помощью .dot

      df.set_index('ID',inplace=True)
res = df.dot(df.columns + ',').str.rstrip(',').str.split(',').explode().reset_index(name='Colour')

res:

          ID  colour
0   1001    Red
1   1001    Green
2   1001    Orange
3   1002    Blue
4   1002    Yellow
5   1003    Yellow
6   1003    Orange
7   1004    
8   1005    Red
9   1005    Yellow

Если вы хотите удалить элемент в index 7 ничего не содержащее тогда делай

      res = res.replace('', np.nan).dropna()
Другие вопросы по тегам