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

Pandas取Limit列Top10与Bottom10用Number列做同分决胜实现问题

解决方案

报错原因

df10.head(10)['Limit'].duplicated() 返回的是布尔类型的Series,if 条件要求传入单个布尔值,pandas无法直接判定整个Series的真值,因此触发了该歧义报错。

实现代码

你不需要手动判断重复值,直接通过多字段排序规则即可实现需求:

# 提取Top10:先按Limit降序,Limit相同按Number降序,取前10条
top10 = df1[['Number', 'Limit']].sort_values(by=['Limit', 'Number'], ascending=[False, False]).head(10)

# 提取Bottom10:先按Limit升序,Limit相同按Number降序,取前10条
bottom10 = df1[['Number', 'Limit']].sort_values(by=['Limit', 'Number'], ascending=[True, False]).head(10)

代码说明

  • sort_values的by参数传入多列时,会按传入顺序优先级排序:优先按Limit排序,Limit值相同的行再按Number排序
  • ascending参数与by的列一一对应:
    • Top10场景下Limit用降序(大值在前),Number用降序(同分情况下Number大的排在前)
    • Bottom10场景下Limit用升序(小值在前),Number用降序(同分情况下Number大的排在前)
      如果仅需要提取Limit列的结果,在末尾追加['Limit']即可,例如top10_limit = top10['Limit']。

内容的提问来源于stack exchange,提问作者Laura V.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:03