を使用せずに 2 つの列の積 (または合計など) を直接計算することは可能ですか?
grouped.apply(lambda x: (x.a*x.b).sum()
使用する方がはるかに高速です(私のマシンでの時間の半分未満)
df['helper'] = df.a*df.b
grouped= df.groupby(something)
grouped['helper'].sum()
df.drop('helper', axis=1)
しかし、私はこれをしなければならないのはあまり好きではありません。たとえば、グループごとの加重平均を計算すると便利です。ここで、ラムダアプローチは次のようになります
grouped.apply(lambda x: (x.a*x.b).sum()/(df.b).sum())
また、ヘルパーを b.sum() で除算するよりもはるかに遅くなります。