Я пытаюсь объединить 4 категориальных столбца в 1 с расплавлением панд, но он создает 3 дубликата каждой строки (что дает мне в 4 раза больше строк).
dat = pd.DataFrame({'Name':('Tom','Pete','Mark','Steve'),
'Type1':(0,1,0,0),
'Type2':(1,0,0,0),
'Type3':(0,0,0,0),
'Type4':(0,0,0,0)})
dat = pd.melt(dat, id_vars='Name',
value_vars=('Type1', 'Type2', 'Type3', 'Type4'), value_name='type')
Name variable type
0 Tom Type1 0
1 Pete Type1 1
2 Mark Type1 0
3 Steve Type1 0
4 Tom Type2 1
5 Pete Type2 0
6 Mark Type2 0
7 Steve Type2 0
8 Tom Type3 0
9 Pete Type3 0
10 Mark Type3 0
11 Steve Type3 0
12 Tom Type4 0
13 Pete Type4 0
14 Mark Type4 0
15 Steve Type4 0
Другая проблема, с которой я столкнулсядогадка не может быть решена с помощью melt - это замена всех строк, где значение 0 для всех типов, на «None», но, вероятно, это можно сделать простым запросом - исправление дубликатов - это мое беспокойство на данный момент.Разве я не должен использовать melt?
Я пытаюсь получить: столбец с типом 1 или 2 или 3 или 4. Так что в этом случае:
Name Type
0 Tom Type2
1 Pete Type1
2 Mark Type3
3 Steve Type3
Гдепоследние 2 предпочтительно превратятся в «Нет», поскольку этим двум именам не назначен тип.(Надеюсь, я не сойду с ума, и это имеет смысл для кого-то, кроме меня).