Я работаю с DataFrame, где хочу найти%, который каждый элемент вносит в группу.
Например, у меня есть следующий кадр данных
a
Out[295]:
c1 c2 c3
0 a p1 1
1 b p1 2
2 c p2 3
3 d p3 4
Я хочу получить сумму каждой группы на c2, а затем разделить c3 на эту сумму. Я могу использовать функцию groupby для получения сумм:
b = a.groupby('c2').aggregate({'c3':sum})
b
Out[298]:
c3
c2
p1 3
p2 3
p3 4
Но тогда я не знаю, как разделить ТОЛЬКО столбец c3 на эти результаты, чтобы получить следующее:
c1 c2 c3
0 a p1 0.333
1 b p1 0.667
2 c p2 1.000
3 d p3 1.000