Предположим, у меня есть следующие данные:
df = pd.DataFrame(data = [[1,1,10],[1,2,20],[1,3,50],[2,1,15],[2,2,20],[2,3,30],[3,1,40],[3,2,70]],columns=['id1','id2','x'])
id1 id2 x
0 1 1 10
1 1 2 20
2 1 3 50
3 2 1 15
4 2 2 20
5 2 3 30
6 3 1 40
7 3 2 70
Фрейм данных отсортирован по двум идентификаторам. Предположим, я хотел бы знать значение x ПЕРВОГО наблюдения в каждой группе id1
наблюдений. Результат будет как
id1 id2 x first_x
1 1 10 10
1 2 30 10
1 3 50 10
2 1 15 15
2 2 20 15
2 3 30 15
3 1 40 40
3 2 70 40
Как мне добиться этой «подписки»? В идеале новый столбец должен быть заполнен для каждого наблюдения.
Я думал в духе
df['first_x'] = df.groupby(['id1'])[0]