Funções GroupBy em Pandas Python como SUM (col_1 * col_2), média ponderada, etc.

É possível calcular diretamente o produto (ou, por exemplo, a soma) de duas colunas sem usar

<code>grouped.apply(lambda x: (x.a*x.b).sum()
</code>

É muito (menos da metade do tempo na minha máquina) mais rápido de usar

<code>df['helper'] = df.a*df.b
grouped= df.groupby(something)
grouped['helper'].sum()
df.drop('helper', axis=1)
</code>

Mas eu realmente não gosto de ter que fazer isso. Por exemplo, é útil calcular a média ponderada por grupo. Aqui a abordagem lambda seria

<code>grouped.apply(lambda x: (x.a*x.b).sum()/(df.b).sum())
</code>

e novamente é muito mais lento que dividir o ajudante por b.sum ().

questionAnswers(3)

yourAnswerToTheQuestion