受限库环境下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
相关产品推荐
相关产品推荐

