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

Pandas 1.3.4如何按col1不同取值设置col2阈值筛选行

Pandas 多组行条件筛选实现方案

Pandas 1.3.4版本完全支持该需求,以下是两种常用实现方式:


方案1:直接拼接布尔条件

按照需求把每一组规则拆成(col1匹配判断) & (col2阈值判断)的组合,再用逻辑或|拼接所有规则即可,注意每一组独立条件必须用括号包裹,避免运算符优先级出错:

result = df[
    ((df['col1'] == 'A') & (df['col2'] > 10)) |
    ((df['col1'] == 'C') & (df['col2'] > 5)) |
    ((df['col1'] == 'B') & (df['col2'] > 1000))
]

方案2:阈值映射法(规则较多时更简洁)

如果后续需要调整/新增规则,直接修改阈值字典即可,不需要修改判断逻辑:

  1. 首先定义col1取值对应的阈值映射:
threshold_map = {
    'A': 10,
    'C': 5,
    'B': 1000
}
  1. 把col1列映射为对应阈值后和col2比较即可完成筛选:
result = df[df['col2'] > df['col1'].map(threshold_map)]

两种方案得到的结果都和预期一致:

indexcol1col2
1A20
3C10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:54:07