我有一个这样的数据框,
df
col1 col2 col3
A [1,2] [[1,2],[3,4]]
B [5] [[6,7]]
C [8,9] [[10,11],[12,13]]
A [14] [[15,16]]
现在,如果col1的列值重复,则将col2和col3分配为其原始值,这样最终数据帧将看起来像这样,
col1 col2 col3
A [1,2, 14] [[1,2],[3,4],[15,16]]
B [5] [[6,7]]
C [8,9] [[10,11],[12,13]]
最后一行的A值分配给存在A的第一列。我可以使用for循环并与以前的值进行比较,但是执行时间会很长,因此需要一些熊猫捷径来最有效地执行此操作。
答案 0 :(得分:1)
尝试使用groupby
sum
newdf = df.groupby('col1',as_index=False).sum()
Out[31]:
col1 col2 col3
0 A [1, 2, 14] [[1, 2], [3, 4], [15, 16]]
1 B [5] [[6, 7]]
2 C [8, 9] [[10, 11], [12, 13]]