Я пытаюсь создать фрейм данных, в который я добавляю дубликаты как варианты в столбце. Для дальнейшей иллюстрации моего вопроса:
У меня есть датафрейм для панд:
Case ButtonAsInteger
0 1 130
1 1 133
2 1 42
3 2 165
4 2 158
5 2 157
6 3 158
7 3 159
8 3 157
9 4 130
10 4 133
11 4 43
... ... ...
Я преобразовал это в эту форму:
grouped = activity2.groupby(['Case'])
values = grouped['ButtonAsInteger'].agg('sum')
id_df = grouped['ButtonAsInteger'].apply(lambda x: pd.Series(x.values)).unstack(level=-1
0 1 2 3 4 5 6 7 8 9
Case
1 130.0 133.0 42.0 52.0 47.0 47.0 32.0 94.0 NaN NaN
2 165.0 158.0 157.0 141.0 142.0 142.0 142.0 142.0 142.0 147.0
3 158.0 159.0 157.0 147.0 166.0 170.0 169.0 130.0 133.0 133.0
4 130.0 133.0 42.0 52.0 47.0 47.0 32.0 94.0 NaN NaN
А теперь я хочу найти дубликаты и пометить каждый дубликат как вариант. Таким образом, в этом примере Варианты 1 и 4 должны получить вариант 1. Как это:
Variants 0 1 2 3 4 5 6 7 8 9
Case
1 1 130.0 133.0 42.0 52.0 47.0 47.0 32.0 94.0 NaN NaN
2 2 165.0 158.0 157.0 141.0 142.0 142.0 142.0 142.0 142.0 147.0
3 3 158.0 159.0 157.0 147.0 166.0 170.0 169.0 130.0 133.0 133.0
4 1 130.0 133.0 42.0 52.0 47.0 47.0 32.0 94.0 NaN NaN
Я уже попробовал этот метод https://stackoverflow.com/a/44999009. Но он не работает на моем фрейме данных. К сожалению, я не знаю почему.
Вероятно, будет возможно применить двойной цикл for. Поэтому для каждой строки посмотрите, есть ли в записи дубликат. Эффективно ли это для большой записи, я не знаю.
Я также добавил свою процедуру с группировкой, потому что, возможно, на этом этапе уже есть возможность работать с дубликатами?