自定义数据框架中字段的聚合。

问题描述 投票:1回答:1

我有一个数据框架,像。

time    action    value
--------------------------
10:00   FG        2
10:00   Ast       0
09:45   Miss      0
09:40   TO        0
09:40   Steal     0
09:30   FG        2
09:30   FT        1

我想把这个分组 time但有两种不同的方式。

  • action 应该变成一个列表
  • value 归结为

预期的产出。

time    action    value
--------------------------
10:00   [FG,Ast]  2
09:45   Miss      0
09:40   [TO,Steal]0
09:30   [FG,FT]   3

我可以逐个进行。

  • list: `df.groupby('action')['value'].sum() df.groupby('time')['action'].apply(list).reset_index()
  • sum: `df.groupby('action')['value'].sum()

我怎么能把这两个一起做呢?

python pandas pandas-groupby
1个回答
2
投票

groupby.agg :

df = df.groupby('time', as_index=False).agg({'action':list, 'value':np.sum})

print(df)
    time       action  value
0  09:30     [FG, FT]      3
1  09:40  [TO, Steal]      0
2  09:45       [Miss]      0
3  10:00    [FG, Ast]      2
© www.soinside.com 2019 - 2024. All rights reserved.