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

Python DataFrame中移除含嵌套括号的(REQ)相关内容需求

处理DataFrame中含嵌套括号的特殊内容移除

问题分析

需要移除DataFrame的description列中,从(REQ开始的对应括号内所有内容,包括嵌套的多层括号结构,最终保留括号外的文本。

解决方案

嵌套括号无法通过简单正则表达式直接匹配,因此编写自定义遍历函数来精准定位括号闭合位置,再执行移除操作:

import pandas as pd

def remove_req_content(s):
    start = s.find("(REQ")
    if start == -1:
        return s
    # 初始化括号计数器,(REQ本身包含一个左括号,初始计数为1
    bracket_count = 1
    end = start + len("(REQ")
    while end < len(s) and bracket_count > 0:
        char = s[end]
        if char == '(':
            bracket_count += 1
        elif char == ')':
            bracket_count -= 1
        end += 1
    # 拼接移除目标内容后的字符串
    result = s[:start] + s[end:]
    # 清理移除后可能出现的连续空格
    return ' '.join(result.split())

# 示例DataFrame
df = pd.DataFrame({
    "description": [
        "LEATHER SEATS (REQ: include (Full Package (PA) and XL Trim)) xxx",
        "SUNROOF (REQ: Basic (A) + Premium (B)) yyy",
        "STANDARD SEATS zzz"
    ]
})

# 批量处理目标列
df["cleaned_description"] = df["description"].apply(remove_req_content)

print(df)

代码说明

  • remove_req_content函数:
    1. 先定位(REQ的起始位置,不存在则直接返回原字符串
    2. 从起始位置后遍历字符,用bracket_count统计括号层级:左括号计数+1,右括号计数-1,直到计数归0时找到闭合括号的位置
    3. 拼接字符串并清理多余连续空格,避免移除括号后出现冗余空格
  • 通过apply方法将函数批量应用到DataFrame的目标列

运行结果

处理后的cleaned_description列输出:

0    LEATHER SEATS xxx
1       SUNROOF yyy
2    STANDARD SEATS zzz

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:12:01