0

我有一个这样的数据框,

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 的第一列。我可以使用 for 循环并与以前的值进行比较来做到这一点,但是执行时间会很长,所以寻找一些 pandas 快捷方式来最有效地做到这一点。

4

1 回答 1

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]]
于 2020-08-18T14:22:42.737 回答