You need to enable JavaScript to run this app. Pandas查询列最大值对应行时去除重复行的实现方法
优惠活动
大模型
产品
解决方案
定价
更多

Pandas查询列最大值对应行时去除重复行的实现方法

单条结果获取实现方案

当前筛选返回4条完全一致重复行的场景下,可根据实际使用需求选择以下处理方式:

  • 适配现有代码的去重处理:在已写好的筛选结果后追加drop_duplicates()方法,过滤掉内容完全一致的冗余行,仅保留唯一的匹配结果。
    对应完整代码:
    df[['name','score']][df.score == df.score.max()].drop_duplicates()
    
    执行后输出仅包含1行name='a', score=100的结果,默认保留第一次出现的匹配行;如果需要保留最后一次出现的重复行,可传入参数keep='last',即.drop_duplicates(keep='last')。
  • 一步实现最高分查询:利用pandas自带的nlargest方法,按照score列排序直接取排名第一的单行结果,无需手动计算最大值、筛选、去重,逻辑更简洁健壮:
    df[['name','score']].nlargest(1, 'score')
    
    该方法会自动计算score列的最大值,返回排序后排名首位的结果,即便存在多个并列最高分的记录,也会只返回1行,完全匹配需求。
  • 轻量化值提取:如果仅需要拿到匹配的name值、不需要返回完整DataFrame结构,可以调用unique()方法先对匹配的name列做值去重,再取数组中的第一个元素:
    # 直接返回字符串"a"
    df[df.score == df.score.max()]['name'].unique()[0]
    
  • 索引截取首行结果:如果确定数据集必然存在score等于最大值的记录,也可以直接通过索引截取筛选结果的第一行:
    df[['name','score']][df.score == df.score.max()].iloc[0]
    
    注意该方法健壮性较弱,如果后续数据集中不存在符合筛选条件的记录,会触发索引越界报错。

内容的提问来源于stack exchange,提问作者nemo92world

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.11 14:54:00