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
相关产品推荐
相关产品推荐

