我有一个pandas dataframe,它根据两列(A和B)包含重复的值:
A B C
1 2 1
1 2 4
2 7 1
3 4 0
3 4 8
我希望删除重复项,并将最大值行保留在列C中。这将导致:
A B C
1 2 4
2 7 1
3 4 8
我想不出该怎么做。我是不是应该用drop_duplicates()
或者别的什么?
发布于 2018-05-07 16:24:35
只需使用pandas drop duplicates功能即可完成此操作
df.drop_duplicates(['A','B'],keep= 'last')
发布于 2015-08-19 19:17:57
我觉得groupby应该行得通。
df.groupby(['A', 'B']).max()['C']
如果你需要一个数据帧回来,你可以链接重置索引调用。
df.groupby(['A', 'B']).max()['C'].reset_index()
发布于 2017-12-05 21:47:41
您可以根据自己的需要使用drop_duplicates
完成此操作
# initialisation
d = pd.DataFrame({'A' : [1,1,2,3,3], 'B' : [2,2,7,4,4], 'C' : [1,4,1,0,8]})
d = d.sort_values("C", ascending=False)
d = d.drop_duplicates(["A","B"])
如果获得相同的订单很重要
d = d.sort_index()
https://stackoverflow.com/questions/32093829
复制相似问题