[python - Apply multiple functions to multiple groupby columns - Stack Overflow](https://stackoverflow.com/questions/14529838/apply-multiple-functions-to-multiple-groupby-columns)
> ... もし複数のカラムが相互に作用する必要がある場合、agg は使えません。agg は暗黙のうちに Series を集計関数に渡します。apply を使用すると、グループ全体が DataFrame として関数に渡されます。
```python
def f(x):
d = {}
d['a_sum'] = x['a'].sum()
d['a_max'] = x['a'].max()
d['b_mean'] = x['b'].mean()
d['c_d_prodsum'] = (x['c'] * x['d']).sum()
return pd.Series(d, index=['a_sum', 'a_max', 'b_mean', 'c_d_prodsum'])
df.groupby('group').apply(f)
a_sum a_max b_mean c_d_prodsum
group
0 0.864569 0.446069 0.466054 0.173711
1 1.478872 0.843026 0.687672 0.630494
```