我有一个数据框架,像。
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
我可以逐个进行。
df.groupby('time')['action'].apply(list).reset_index()
我怎么能把这两个一起做呢?
用 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