GroupBy-Funktionen in Python Pandas wie SUM (col_1 * col_2), gewichteter Durchschnitt usw

Ist es möglich, das Produkt (oder zum Beispiel die Summe) von zwei Spalten ohne Verwendung von direkt zu berechnen?

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

Es ist viel (weniger als die Hälfte der Zeit auf meinem Computer) schneller zu bedienen

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

Aber ich mag es nicht wirklich, das zu tun. Es ist beispielsweise nützlich, den gewichteten Durchschnitt pro Gruppe zu berechnen. Hier wäre der Lambda-Ansatz

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

und wieder ist es viel langsamer, als den Helfer durch b.sum () zu teilen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage