У меня есть этот мультииндексированный фрейм данных:
- metric_1
cat_A date cat_B
foo 2019-03-18 blue 1
yellow 2
red 3
2019-03-19 blue 5
red 10
green 5
bar 2019-03-18 yellow 2
black 2
red 2
2019-03-19 red 1
blue 8
black 1
Я хочу создать metric_2
, который принимает metric_1
один и делит на общую сумму metric_1
для всехcat_B
в течение определенной даты И в пределах соответствующей cat_A
.
Пример вывода:
- metric_1 metric_2
cat_A date cat_B<br>
foo 2019-03-18 blue 1 0.166
yellow 2 0.333
red 3 0.500
2019-03-19 blue 5 0.250
red 10 0.500
green 5 0.250
bar 2019-03-18 yellow 2 0.333
black 2 0.333
red 2 0.333
2019-03-19 red 1 0.100
blue 8 0.800
black 1 0.100
Я пытаюсь суммировать уровни, используя sum(level = 0)
, sum(level = 1)
и т. Д., Но требуется толькосумма всего уровня, и я думаю, что я что-то упустил.
Заранее спасибо!