Функции GroupBy в Python Pandas, такие как SUM (col_1 * col_2), средневзвешенное значение и т. Д.

Можно ли напрямую рассчитать произведение (или, например, сумму) двух столбцов, не используя

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

Это намного (меньше, чем половина времени на моей машине) быстрее использовать

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

Но мне не очень нравится это делать. Например, полезно рассчитать средневзвешенное значение для группы. Здесь лямбда-подход будет

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

и снова намного медленнее, чем деление помощника на b.sum ().

Ответы на вопрос(3)

Ваш ответ на вопрос