Python:过滤pandas数据帧以保持基于列的指定行数

问题描述 投票:2回答:2

我有一个pandas数据框,看起来像:

id    name    grade
1     A       10
1     A       12
1     A       15
2     B       20
3     C       19
3     C       16
3     C       11

并且需要使它看起来像:

id    name    grade
1     A       12
1     A       15
2     B       20
3     C       19
3     C       16

在这种情况下,我需要为每个id保持前2行,并且成绩最高。我知道我可以使用iloc并遍历数据帧,但我想知道是否有更多的pythonic方式来做到这一点。这有可能吗?提前致谢

顺便说一句,如果您有任何想法,请随时编辑问题并给它一个更好的标题。

UPDATE1我已经接受@ willem-van-onsem的答案,因为它首先发布并且对我来说很好。另一个答案也很好。我不确定每个答案的表现,所以如果出于任何原因你认为另一个可能更合适,请在这里发表评论,以便我更新答案和帖子以及其他人。

UPDATE2接受的答案在大型数据帧上运行得更好,这就是为什么我要坚持它作为答案。

python pandas
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.