x = {'sa':[2,3,3,5,5,7],'daList':[[2,3],[4,5],[9],[44,55],[23,45],[66]]}
x = pd.DataFrame(x)
数据形式如下:
daList sa
0 [2, 3] 2
1 [4, 5] 3
2 [9] 3
3 [44, 55] 5
4 [23, 45] 5
5 [66] 7
需求:先将sa相同的daList中的所有元素合并成一个列表
方法一:
x.groupby(['sa'])['daList'].apply(lambda x:np.concatenate(list(x))).reset_index()
Out[340]:
sa daList
0 2 [2, 3]
1 3 [4, 5, 9]
2 5 [44, 55, 23, 45]
3 7 [66]
方法二:
x.groupby('sa')['daList'].apply(lambda x: reduce(lambda y,z: y+z, x)).reset_index()
Out[345]:
sa daList
0 2 [2, 3]
1 3 [4, 5, 9]
2 5 [44, 55, 23, 45]
3 7 [66]