在python中处理重复行
我有一个日期框df,假设有5列:a,b,c,d,e在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
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
列不起作用,因为它包含字符串。你可能需要单独处理。