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

Pandas条件判断删除列时如何保留MATNR列并添加异常处理

实现方案

直接调整列筛选判断逻辑+加drop异常参数即可,不需要改动其他原有流程。

核心修改点

  • 调整待删除列的判断规则:只有*既不在规则识别出的有效列列表,也不是MATNR*的列才会被删除,保证MATNR列无论是否被规则文件识别到都会保留
  • 增加异常兼容:给drop方法传入errors='ignore'参数,就算待删除的列不存在、或者数据里压根没有MATNR列,代码也不会抛KeyError中断运行
  • 小优化:把读取到的found列表转成集合去重,规则文件里重复出现的列名不会重复判断,运行效率更高

修改后可直接运行的代码

# Import Data Quality Rules (useful attributes)
rexp = re.compile('\.([A-Z]+)')
found = []

with open('DataRules.csv') as f:
    for line in f:
        found.extend(rexp.findall(line))
# 有效列转集合去重
valid_columns = set(found)

# Get rid of columns that are not mentioned in rules (except MATNR)
# 生成待删除列列表:排除有效列+排除MATNR
drop_columns = [col for col in df.columns if col not in valid_columns and col != "MATNR"]
df.drop(columns=drop_columns, inplace=True, errors='ignore')

# Get rid of duplicated rows
df = df.drop_duplicates()

逻辑说明

如果某列在found列表里,会被保留;如果列名是MATNR,哪怕不在found列表里也会被保留;其余列全部删除。如果遇到列名不匹配、MATNR缺失的边界情况,代码会自动跳过异常,不会中断运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:18:15