首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据两列A、B从数据帧中删除重复项,将具有最大值的行保留在另一列C中

根据两列A、B从数据帧中删除重复项,将具有最大值的行保留在另一列C中
EN

Stack Overflow用户
提问于 2015-08-19 19:10:05
回答 3查看 136.1K关注 0票数 75

我有一个pandas dataframe,它根据两列(A和B)包含重复的值:

代码语言:javascript
复制
A B C
1 2 1
1 2 4
2 7 1
3 4 0
3 4 8

我希望删除重复项,并将最大值行保留在列C中。这将导致:

代码语言:javascript
复制
A B C
1 2 4
2 7 1
3 4 8

我想不出该怎么做。我是不是应该用drop_duplicates()或者别的什么?

EN

回答 3

Stack Overflow用户

发布于 2018-05-07 16:24:35

只需使用pandas drop duplicates功能即可完成此操作

代码语言:javascript
复制
df.drop_duplicates(['A','B'],keep= 'last')
票数 46
EN

Stack Overflow用户

发布于 2015-08-19 19:17:57

我觉得groupby应该行得通。

代码语言:javascript
复制
df.groupby(['A', 'B']).max()['C']

如果你需要一个数据帧回来,你可以链接重置索引调用。

代码语言:javascript
复制
df.groupby(['A', 'B']).max()['C'].reset_index()
票数 11
EN

Stack Overflow用户

发布于 2017-12-05 21:47:41

您可以根据自己的需要使用drop_duplicates完成此操作

代码语言:javascript
复制
# 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"])

如果获得相同的订单很重要

代码语言:javascript
复制
d = d.sort_index()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32093829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档