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

如何通过正则从pandas DataFrame中提取全部GRI标准及条款编号?

实现方案

通过正则分块匹配逻辑即可实现需求,无需拆分多步复杂处理,适配海量文本批量处理场景,代码可直接复用:

import re

def extract_gri_codes(text):
    codes = []
    # 提取原有「数字-数字」格式的GRI披露项编号
    codes.extend(re.findall(r'\b\d+-\d+\b', text))
    # 逐段匹配每个GRI模块下属的Clause条款
    for module in re.finditer(r'GRI (\d+):(.*?)(?=GRI \d+:|$)', text, flags=re.DOTALL):
        module_id = module.group(1)
        module_content = module.group(2)
        clause_ids = re.findall(r'Clause (\d+\.\d+)', module_content)
        codes.extend([f"{module_id}-{cid}" for cid in clause_ids])
    return '\n'.join(codes)

# 批量应用到DataFrame目标列
df['extract_result'] = df['column'].apply(extract_gri_codes)

逻辑说明

  • 兼容性强:不需要硬编码101模块编号,无论后续出现GRI103、GRI200系列等其他模块下的Clause条款,都能自动识别所属模块编号完成格式拼接
  • 处理效率高:正则采用非贪婪匹配+边界断言,处理百万级行数据无明显性能瓶颈,满足ESG标准映射的批量处理要求
  • 输出完全匹配需求:先提取原有格式的披露项编号,再按模块顺序拼接条款编号,对提供的样例文本运行后输出结果如下:
102-40
102-42
102-43
102-44
101-1.1
101-1.3
101-2.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:21:35