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

Pandas遍历含Compliance关键词多列 按规则对比筛选目标列

Pandas通用Excel合规列筛选实现方案

原代码问题修正

  • 存在语法错误:df merged变量名带空格、字符串替换时引号不匹配
  • 逻辑顺序问题:提前裁剪掉Requirement?列后再插入,易引发索引不匹配问题
  • 筛选逻辑缺失:没有实现「Requirement?为True时合规列为空则保留列」的判断逻辑

可直接复用的实现代码

import pandas as pd
import numpy as np

# 基于原始合并后的DataFrame做副本,避免修改源数据
df6 = df_merged.copy()

# 统一空值标记:将nan、None、字符串nan、空字符串统一标记为'Empty',和业务判定规则对齐
df6 = df6.replace([np.nan, None, 'nan', ''], 'Empty')

# 固定基准列名,自动匹配所有名称带Compliance关键词的列,适配不同Excel列结构
requirement_col = 'Requirement?'
compliance_cols = df6.columns[df6.columns.str.contains("Compliance", na=False)].tolist()

# 逐列校验是否符合保留规则
keep_cols = [requirement_col]
for col in compliance_cols:
    # 规则:存在任意一行满足「Requirement?为True 且 当前合规列取值为Empty」,则保留该列
    if ((df6[requirement_col] == True) & (df6[col] == 'Empty')).any():
        keep_cols.append(col)

# 生成最终结果集
final_result = df6[keep_cols]

适配说明

  • 无硬编码列名,只要Excel文件包含Requirement?列、合规列名带Compliance关键词即可自动识别,兼容不同列顺序、不同数量合规列的文件结构
  • 如果需要严格匹配Compliance Status全称列,可将列匹配逻辑替换为df6.columns.str.contains(r'\bCompliance Status\b', na=False)
  • 空值判定规则可根据实际业务调整replace方法内的匹配值列表

效果验证

针对提供的测试数据:

Requirement? A-Compliance Status  B-Compliance Status
True          Empty                  Yes

代码执行后会自动过滤不符合规则的B列,输出和预期一致:

Requirement?          A-Compliance Status 
True                       Empty  

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:24:28