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

如何按另一列唯一值总数排序返回pandas列的Top10结果

实现方案

你原有代码的错误点:

  • 分组时同时传入Col1和Col2作为分组键,会按两列值的组合做拆分,无法实现按Col1维度聚合统计的需求
  • 链式调用的unique()、sort_values()、count()逻辑顺序错误,没有做降序排序、取前10的相关逻辑

直接使用nunique()方法统计每组的唯一值数量即可,完整实现代码如下:

# 按Col1分组统计Col2的唯一值数量,降序排序后取前10条
top10_result = df.groupby('Col1')['Col2'].nunique().sort_values(ascending=False).head(10)

示例验证

针对你提供的测试数据,运行上述代码得到的统计结果为:

Col1
Sam Jones          2
Rebecca Stevens    1
Name: Col2, dtype: int64

如果需要输出名称 - 计数的文本格式,可通过遍历结果格式化输出:

for col1_val, unique_cnt in top10_result.items():
    print(f"{col1_val} - {unique_cnt}")

输出结果和预期完全匹配:

Sam Jones - 2
Rebecca Stevens - 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:01:41