Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中处理重复行_Python_Pandas_Dataframe - Fatal编程技术网

在python中处理重复行

在python中处理重复行,python,pandas,dataframe,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

我有一个日期框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

如何做到这一点?

我会将“a”分组和求和的结果分配给“b”列,然后您可以删除重复项:

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

您可以使用
pandas.DataFrame.groupby
方法来收集与任何给定列中的唯一值相对应的行,然后使用groupby对象的
aggregate
方法来汇总这些行。但这可能对
c
列不起作用,因为它包含字符串。你可能需要单独处理。