У меня есть датафрейм с группами.Чтобы нормализовать значения для каждой группы, я хотел бы разделить все значения каждой группы на значение определенного элемента в этой группе.
df = pd.DataFrame([['a','2018-02-03',42],
['a','2018-02-04',22],
['a','2018-02-05',10],
['a','2018-02-06',32],
['b','2018-02-03',10],
['b','2018-02-04',8],
['b','2018-02-05',2],
['b','2018-02-06',12],
['c','2018-02-03',20],
['c','2018-02-04',30],
['c','2018-02-05',5],
['c','2018-02-06',15]])
df.columns = ['product','day','value']
Я хочу нормализовать столбец 'value' для каждого 'продукта' на 'value' of 'day' == '2018-02-05'
Ожидаемый результат:
product day value
0 a 2018-02-03 4.2
1 a 2018-02-04 2.2
2 a 2018-02-05 1
3 a 2018-02-06 3.2
5 b 2018-02-03 5
6 b 2018-02-04 4
7 b 2018-02-05 1
8 b 2018-02-06 6
10 c 2018-02-03 4
11 c 2018-02-04 6
12 c 2018-02-05 1
13 c 2018-02-06 3
Я пытался df.groupby('product').transform()
.
Доступ к первому значению .transform('first')
возможен.Но я не могу найти способ получить доступ к определенному значению.
Аннотация: Возможно, это можно решить без использования .groupby()
?