У меня есть пандас DataFrame вроде:
pet treats lbs
0 cat 2 5.0
1 dog 1 9.9
2 snek 3 1.1
3 cat 6 4.5
4 dog 1 9.4
Я хотел бы добавить четвертую колонку, в которой каждое угощение указывается в процентах от общего количества угощений для домашних животных такого типа. Таким образом, значение угощения в строке 0 делится на сумму всех угощений для домашних животных, соответствующих "кошке" (и так далее для каждого ряда).
В Excel, я думаю, я бы сделал что-то вроде этого:
A B C D
1 cat 2 5.0 =B1/SUMIF(A:A,A1,B:B)
2 dog 1 9.9 =B2/SUMIF(A:A,A2,B:B)
3 snek 3 1.1 =B3/SUMIF(A:A,A3,B:B)
4 cat 6 4.5 =B4/SUMIF(A:A,A4,B:B)
5 dog 1 9.4 =B5/SUMIF(A:A,A5,B:B)
У кого-нибудь есть идея, как я могу добавить этот столбец "Treat_percent", используя панд?
pet treats lbs treat_percent
0 cat 2 5.0 33.33
1 dog 1 9.9 50.00
2 snek 3 1.1 100.00
3 cat 6 4.5 66.67
4 dog 1 9.4 50.00
Пока я пробовал:
df['treat_percent'] = df['pet'] / df.groupby('pet')['treats'].sum()
и
df['treat_percent'] = df['pet'] / df.loc[df['pet'] == df['pet'], 'treats'].sum()