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

查找MultiIndex DataFrame中条目数最少的L1与L2索引对

针对多级索引分组统计最小条目组合的Pandas优雅方案

Pandas原生支持直接对多级索引的级别做分组聚合,不需要遍历索引,也不需要把索引转成普通列,几行代码即可实现需求:

核心实现步骤

  1. 按L1、L2两级索引分组,统计每个组合的条目数
    groupby方法的level参数可以直接指定要分组的索引名/索引位置,不需要操作数据列:
# 按索引名指定分组级别,适配索引有命名的场景
pair_counts = df.groupby(level=["L1", "L2"]).size()

# 若索引没有命名,也可以按索引的位置顺序传参,此处0对应L1,1对应L2
# pair_counts = df.groupby(level=[0, 1]).size()

返回的pair_counts是带有(L1, L2)两级索引的Series,值就是对应组合的条目数量,你给出的示例运行后结果如下:

L1  L2
A   a    2
    b    1
B   a    3
C   a    2
    c    2
dtype: int64
  1. 提取条目数最少的组合
  • 若只需要取第一个出现的最小条目组合:
min_pair = pair_counts.idxmin()
# 示例返回结果:('A', 'b')
  • 若存在多个组合条目数同为最小值,要提取所有符合要求的组合:
all_min_pairs = pair_counts[pair_counts == pair_counts.min()].index.tolist()

该方案全程使用Pandas原生API实现,无需遍历索引、无需修改原表结构,性能远高于循环统计的实现方式,完全符合Pandas的代码风格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:24:06