複数のカラムの複数の関数をgroupbyオブジェクトに適用して、新しいpandas.DataFrame
という結果にしたいと考えています。pandas、groupbyオブジェクトに複数のカラムの複数の関数を適用する
私は別々のステップでそれを行う方法を知っている:
user_df
ビーイングになり
by_user = lasts.groupby('user')
elapsed_days = by_user.apply(lambda x: (x.elapsed_time * x.num_cores).sum()/86400)
running_days = by_user.apply(lambda x: (x.running_time * x.num_cores).sum()/86400)
user_df = elapsed_days.to_frame('elapsed_days').join(running_days.to_frame('running_days'))
、のように:
by_user.agg({'elapsed_days': lambda x: (x.elapsed_time * x.num_cores).sum()/86400,
'running_days': lambda x: (x.running_time * x.num_cores).sum()/86400})
AFAIK agg()
がpandas.Series
で動作するため、これは機能しません。
私はthis question and answerを見つけましたが、解決策は私にとっては醜いものです。その答えが4歳に近いと考えれば、今はもっと良い方法があるかもしれません。