处理python中的重复行

时间:2015-05-14 06:15:57

标签: python pandas dataframe

我有一个日期框架df,让我们说5列:a,b,c,d,e。

  a   b   c    d    e

  1   6   x    8    3
  2   3   y    2    3
  3   5   d    1    1
  3   4   g    3    4
  5   3   z    3    1

这就是我想要做的,对于具有相同列a值的所有行,我想删除重复项,但是列b的值应该在这些行之间求和,对于其余列,我想要保持第一个值。

最终数据框架将是:

  a   b   c    d    e

  1   6   x    8    3
  2   3   y    2    3
  3   9   d    1    1
  5   3   z    3    1

怎么做?

1 个答案:

答案 0 :(得分:0)

我将列'b'分配给'a'并求和的分组结果,然后你可以删除重复项:

In [171]:

df['b'] = df.groupby('a')['b'].transform('sum')
df
Out[171]:
   a  b  c  d  e
0  1  6  x  8  3
1  2  3  y  2  3
2  3  9  d  1  1
3  3  9  g  3  4
4  5  3  z  3  1
In [172]:

df.drop_duplicates('a')
Out[172]:
   a  b  c  d  e
0  1  6  x  8  3
1  2  3  y  2  3
2  3  9  d  1  1
4  5  3  z  3  1