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

受限库环境下Excel二进制表数据框多IF判断生成Exist列实现

受限依赖环境下的数据框嵌套IF实现

核心逻辑对齐说明

完全匹配你给出的Excel嵌套IF分支规则,无额外库依赖,全量行自动覆盖:

  • A列值为False → Exist列输出Not found
  • A列值为True时,若B列等于2021 → 输出product coming soon
  • A列值为True时,若B列不等于2021 → 输出product exist

两种适配实现方案

方案1:原生向量化loc赋值(效率最高,兼容性最好)

属于Pandas最基础的原生操作,适配所有版本,无额外依赖:

# 假设数据框对象为df,A列、B列的实际列名直接替换为读取后的实际列名即可
# 若A列为标准布尔类型,直接用布尔索引判断,无需显式写==False/True
df.loc[~df['A'], 'Exist'] = 'Not found'
df.loc[(df['A'] == True) & (df['B'] == 2021), 'Exist'] = 'product coming soon'
df.loc[(df['A'] == True) & (df['B'] != 2021), 'Exist'] = 'product exist'

方案2:嵌套lambda写法(和Excel公式结构完全对齐)

不需要调整分支逻辑,直接复用Excel嵌套IF的判断结构,逻辑直观不易写错:

df['Exist'] = df.apply(
    lambda row: 
    'Not found' if row['A'] == False 
    else ('product coming soon' if row['B'] == 2021 else 'product exist'),
    axis=1
)

注意事项

  • 如果从Excel读取的A列布尔值存在空值,可在判断前用df['A'] = df['A'].fillna(False)将空值默认归为Not found分支
  • 两种写法都会自动覆盖A列对应的所有行,不需要手动指定行范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 10:27:03