Pandas Python equivalentes ao grupo R por mutate

Então, em R, quando eu tenho um quadro de dados composto por, digamos, 4 colunas, chame-odf e eu quero calcular a relação pela soma do produto de um grupo, posso da seguinte maneira:

// 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 |

Mas em python eu preciso recorrer a loops. Eu sei que deve haver uma maneira mais elegante do que loops crus em python, alguém tem alguma idéia?

questionAnswers(2)

yourAnswerToTheQuestion