Рассмотрим следующий кадр данных:
>>> import pandas as pd
>>> df = pd.DataFrame({'group': list('aaabbabc')})
>>> df
group
0 a
1 a
2 a
3 b
4 b
5 a
6 b
7 c
Я хочу посчитать, сколько раз каждая группа встречалась. Мой желаемый вывод выглядит так:
>>> df
group n
0 a 0
1 a 1
2 a 2
3 b 0
4 b 1
5 a 3
6 b 2
7 c 0
Мой первоначальный подход был сделать что-то вроде этого:
df['n'] = df.groupby('group').apply(lambda x: list(range(x.shape[0])))
В основном, присваивая массиву n нулевой индекс каждой группе. Но это оказалось трудно перенести и присоединиться.