在熊猫数据框中发现重复值时,分配给先前的值

时间:2020-08-18 14:21:34

标签: python pandas dataframe

我有一个这样的数据框,

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循环并与以前的值进行比较,但是执行时间会很长,因此需要一些熊猫捷径来最有效地执行此操作。

1 个答案:

答案 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]]