相关疑难解决方法(0)

pandas,将多列的多个函数应用于groupby对象

我想将多列的多个函数应用于groupby对象,从而产生一个新的pandas.DataFrame.

我知道如何以单独的步骤做到这一点:

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'))
Run Code Online (Sandbox Code Playgroud)

结果user_df是: user_df

但是我怀疑有更好的方法,比如:

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})
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为AFAIK agg()可以工作pandas.Series.

我确实找到了这个问题和答案,但解决方案看起来相当丑陋,考虑到答案已接近四年,现在可能有更好的方法.

python group-by dataframe pandas

13
推荐指数
2
解决办法
4504
查看次数

标签 统计

dataframe ×1

group-by ×1

pandas ×1

python ×1