You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用Pandas筛选DataFrame某列3个最高值,nlargest返回整行怎么办?

Pandas 提取某一列的3个最高值(含去重/不去重方案)

你遇到的问题是nlargest默认返回整行数据,若只需目标列的数值,针对不同需求可以用以下方案:

场景1:提取列的前3个最高值(允许重复)

如果不需要去重,只想拿到列里数值最大的前3个(包含重复项),直接对目标列调用方法即可:

  • 方式1:用nlargest后转列表
    # df是你的DataFrame,'target_col'是目标列名
    top3_values = df['target_col'].nlargest(3).tolist()
    
  • 方式2:先排序再取前3
    top3_values = df['target_col'].sort_values(ascending=False).head(3).tolist()
    

场景2:提取列的3个唯一最高值(去重后取前3)

如果目标列有重复值,你需要的是不同的最高数值,先去重再筛选:

  • 方式1:去重后用nlargest
    top3_unique_values = df['target_col'].drop_duplicates().nlargest(3).tolist()
    
  • 方式2:提取唯一值后排序截取
    unique_values = df['target_col'].unique()
    top3_unique_values = sorted(unique_values, reverse=True)[:3]
    

示例演示

假设你的DataFrame如下:

import pandas as pd
df = pd.DataFrame({
    'item': ['apple', 'banana', 'orange', 'pear', 'grape', 'mango'],
    'price': [15, 20, 20, 25, 25, 25]
})
  • 场景1执行后得到:[25, 25, 25]
  • 场景2执行后得到:[25, 20, 15]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:20:42