Итак, в R, когда у меня есть кадр данных, состоящий из 4 столбцов, назовите его df
и я хочу вычислить отношение по суммированному произведению группы, я могу это сделать так:
// generate data
df = data.frame(a=c(1,1,0,1,0),b=c(1,0,0,1,0),c=c(10,5,1,5,10),d=c(3,1,2,1,2));
| a b c d |
| 1 1 10 3 |
| 1 0 5 1 |
| 0 0 1 2 |
| 1 1 5 1 |
| 0 0 10 2 |
// compute sum product ratio
df = df%>% group_by(a,b) %>%
mutate(
ratio=c/sum(c*d)
);
| a b c d ratio |
| 1 1 10 3 0.286 |
| 1 1 5 1 0.143 |
| 1 0 5 1 1 |
| 0 0 1 2 0.045 |
| 0 0 10 2 0.454 |
Но в python мне нужно прибегнуть к циклам. Я знаю, что должен быть более элегантный способ, чем исходные петли на питоне, у кого есть идеи?