GroupBy funciona en Python Pandas como SUM (col_1 * col_2), promedio ponderado, etc.

¿Es posible calcular directamente el producto (o, por ejemplo, la suma) de dos columnas sin usar

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

Es mucho más rápido (menos de la mitad del tiempo en mi máquina) de usar

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

Pero realmente no me gusta tener que hacer esto. Es útil, por ejemplo, calcular el promedio ponderado por grupo. Aquí el enfoque lambda sería

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

y nuevamente es mucho más lento que dividir el ayudante por b.sum ().

Respuestas a la pregunta(3)

Su respuesta a la pregunta