У меня есть фрейм данных, который выглядит следующим образом:
Category Shuffled Name Sequence Length
0 pgm 0 protein1 IAAI 4
1 pgm 0 protein2 PGGP 4
2 pgm 0 protein3 KIIK 4
3 pgm 0 protein4 PGGP 4
4 btn 0 protein1 ABBA 4
5 btn 0 protein2 IAAI 4
6 btn 0 protein3 ABBA 4
7 btn 0 protein4 PGGP 4
8 pgm 1 protein1 IAAI 4
9 pgm 1 protein2 PGGP 4
10 pgm 1 protein3 KIIK 4
11 pgm 1 protein4 PGGP 4
12 btn 1 protein1 ABBA 4
13 btn 1 protein2 IAAI 4
14 btn 1 protein3 ABBA 4
15 btn 1 protein4 PGGP 4
Я хочу подсчитать количество появлений Sequence
в каждой группе Category
/ Shuffled
и добавить его как новый столбец . Результирующие данные должны выглядеть так:
Category Shuffled Name Sequence Length Sequence_count
0 pgm 0 protein1 IAAI 4 1
1 pgm 0 protein2 PGGP 4 2
2 pgm 0 protein3 KIIK 4 1
3 pgm 0 protein4 PGGP 4 2
4 btn 0 protein1 ABBA 4 2
5 btn 0 protein2 IAAI 4 1
6 btn 0 protein3 ABBA 4 2
7 btn 0 protein4 PGGP 4 1
8 pgm 1 protein1 IAAI 4 1
9 pgm 1 protein2 PGGP 4 2
10 pgm 1 protein3 KIIK 4 1
11 pgm 1 protein4 PGGP 4 2
12 btn 1 protein1 ABBA 4 2
13 btn 1 protein2 IAAI 4 1
14 btn 1 protein3 ABBA 4 2
15 btn 1 protein4 PGGP 4 1
То, что я пробовал до сих пор, что работает, это
counts = df.groupby(['Category', 'Shuffled'])['Sequence'].value_counts()
, что дает мне
Category Shuffled Sequence
pgm 0 PGGP 2
IAAI 1
KIIK 1
1 PGGP 2
IAAI 1
KIIK 1
btn 0 ABBA 2
IAAI 1
PGGP 1
1 ABBA 2
IAAI 1
PGGP 1
Это значения, которые я хочу, но как мне получить их в отдельной строке в исходном фрейме данных?