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

如何筛选MultiIndex首层级组内列值在最小值25范围内的DataFrame行

解决方法

可以借助groupby结合transform方法实现需求,步骤如下:

  1. 按MultiIndex的首个层级(level=0)分组,计算每个分组中v列的最小值,用transform让结果保留和原DataFrame一致的索引结构,确保能直接与原列做运算。
  2. 计算每行v值与对应分组最小值的差值,筛选出差值不超过25的行。

具体代码如下:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({"v":[x*x for x in range(12)]}, 
                  index=pd.MultiIndex.from_product([["a","b","c"],[1,2,3,4]]))

# 计算每个分组的最小值,保留原索引结构
group_min = df.groupby(level=0)['v'].transform('min')
# 筛选满足条件的行
result = df[df['v'] - group_min <= 25]

print(result)

运行后得到的结果与预期一致:

v
a 1    0
  2    1
  3    4
  4    9
b 1   16
  2   25
  3   36
c 1   64
  2   81

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:18:19