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

Pandas如何获取列前2大值对应行数据,idxmax仅取1个、nlargest报错如何解决

Pandas获取指定列前N大值对应字段的实现方法

正确实现代码

方案1:使用nlargest方法(推荐)

nlargest方法第一个参数为要取的前N条数量,第二个参数为用于排序的参考列名,直接链式调用提取目标字段即可:

# 获取float列前2大值对应的str+list列,返回Series格式
df.nlargest(2, 'float')['str+list']

# 如果需要转为Python列表格式,追加tolist()即可
res = df.nlargest(2, 'float')['str+list'].tolist()
# 你的示例数据返回结果为:[[B,C], [A,D]]

方案2:排序后取前N行(兼容性更好)

如果对nlargest参数不熟悉,也可以先对float列降序排序,再取前2行提取目标字段,效果完全一致:

df.sort_values('float', ascending=False).head(2)['str+list']

常见报错原因

你之前调用nlargest报错大概率是参数顺序传反了,注意不要把列名放在第一个参数位置,第一个参数必须是要取的条目数量。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:06:04