我有这张桌子
A B C E
1 2 1 3
1 2 4 4
2 7 1 1
3 4 0 2
3 4 8 3
现在,我想删除基于A列和B列并同时总结列C的重复项。对于E,它应采用C表示最大值的值。理想的结果表应如下所示:
A B C E
1 2 5 4
2 7 1 1
3 4 8 3
我尝试了这个操作:df.groupby(['A', 'B']).sum()['C']
,但是我认为我没有适当地合并E列部分,因此我的数据框根本没有改变...有人可以建议吗?
非常感谢!
答案 0 :(得分:0)
如果第一行和第二行重复,我们可以将它们分组。
In [20]: df
Out[20]:
A B C E
0 1 1 5 4
1 1 1 1 1
2 3 3 8 3
In [21]: df.groupby(['A', 'B'])['C'].sum()
Out[21]:
A B
1 1 6
3 3 8
Name: C, dtype: int64
我尝试了这个:df.groupby(['A','B'])。sum()['C'],但我的数据框完全没有改变
是的,这是因为熊猫没有覆盖最初的DataFrame
In [22]: df
Out[22]:
A B C E
0 1 1 5 4
1 1 1 1 1
2 3 3 8 3
您必须明确地覆盖它。
In [23]: df = df.groupby(['A', 'B'])['C'].sum()
In [24]: df
Out[24]:
A B
1 1 6
3 3 8
Name: C, dtype: int64