我想按列和数据帧中另一列的列表总和进行分组,但似乎以下代码不起作用。使用该功能后,每个用户的长度都不同sum
。dt2 = dt.groupby(['user']).sum()
数据如下:
user vector
1 [1,2,3,4,5]
2 [1,3,2,4,5]
1 [3,3,3,4,4]
1 [1,2,2,1,1]
2 [1,1,2,0,0]
预期表应为
user vector
1 [5,7,8,9,9]
2 [2,4,4,4,5]
这里有一种方法,它基于vector
列和user
和总和分组创建df,最后aggregate
为axis=1
上的列表:
(pd.DataFrame(df['vector'].tolist())
.groupby(df['user']).sum().agg(list,axis=1).reset_index(name='vector'))
user vector
0 1 [5, 7, 8, 9, 10]
1 2 [2, 4, 4, 4, 5]