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

sort_values报错排查:如何获取本科生占比最高的5所院校?

错误排查与解决方案

错误原因

  1. 参数不匹配:groupby('Name')['PercUG'].unique()返回的是pandas Series,而Series的sort_values()方法没有by参数——by是DataFrame的sort_values()专用参数,用于指定排序列。
  2. 逻辑问题:unique()会返回每个院校对应的所有唯一PercUG值数组,无法直接用于排序比较,不符合“取最高占比”的需求。

正确实现方案

根据数据实际情况选择以下两种方案:

方案1:每个院校对应唯一的本科生占比

如果每个Name仅对应一个PercUG值,直接分组取值后排序:

import pandas as pd

# 分组取唯一值、降序排序、取前5
top5_colleges = df_college.groupby('Name')['PercUG'].first().sort_values(ascending=False).head(5)

方案2:每个院校存在多个本科生占比记录

如果一个院校有多条记录,先取每个院校的最高占比再排序:

import pandas as pd

# 分组取最大值、降序排序、取前5
top5_colleges = df_college.groupby('Name')['PercUG'].max().sort_values(ascending=False).head(5)

说明

  • 用first()/max()替代unique(),确保每个院校对应一个可用于排序的数值。
  • Series的sort_values()只需指定ascending=False实现降序,无需by参数。
  • head(5)用于提取排名前5的院校数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:40:34