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

Python pandas如何获取多级索引中分组列最大值对应的索引值

解法

你直接对全表调用idxmax()只会返回全局最大值对应的索引,需要先按cat1索引层级分组后再计算:

核心代码

# 按cat1层级分组,计算每个分组内var最大值对应的cat2
res = df['var'].groupby(level='cat1').idxmax().str[1]

输出结果

cat1
A    bear
B     dog
C    bear
Name: var, dtype: object

扩展:同步返回最大值

如果需要同时保留每个分组的最大值和对应的cat2,可以使用如下写法:

res = df['var'].groupby(level='cat1').agg(max_var='max', max_idx='idxmax')
res['cat2'] = res['max_idx'].str[1]
res = res.drop(columns='max_idx')

输出结果:

max_var  cat2
cat1               
A          66  bear
B          88   dog
C          44  bear

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:54:00