Я немного застрял в попытке нормализовать некоторые записи столбца в кадре данных pandas. Так что у меня dataframe так:Нормализовать столбец в dataframe pandas суммой сгруппированных значений другого столбца
df = pd.DataFrame({
'user':[0,0,1,1,1,2,2],
'item':['A','B', 'A', 'B','C','B','C'],
'bought':[1,1,1,3,3,2,3]})
df
bought|item|user
----------------
1 |A |0
1 |B |0
1 |A |1
3 |B |1
3 |C |1
2 |B |2
3 |C |2
Я хотел бы получить номер каждого элемента купил нормированный общий купленный каждый пользователь.
Другими словами, для каждой записи «купленной» я хотел бы разделить ее на сумму общей суммы, купленной для этого пользователя (как другой столбец). В этом случае выходной я хотел бы это (но «нормализуется» столбец не должен быть фракциями):
bought|item|user|normalized
--------------------------
1 |A |0 |1/2
1 |B |0 |1/2
1 |A |1 |1/7
3 |B |1 |3/7
3 |C |1 |3/7
2 |B |2 |2/5
3 |C |2 |3/5
До сих пор я сгруппированный пользователем и получил сумму пользователя:
grouped = df.groupby(by='user')
grouped.aggregate(np.sum)
Но на данный момент я застрял. Благодаря!