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函数:- 先定位
(REQ的起始位置,不存在则直接返回原字符串 - 从起始位置后遍历字符,用
bracket_count统计括号层级:左括号计数+1,右括号计数-1,直到计数归0时找到闭合括号的位置 - 拼接字符串并清理多余连续空格,避免移除括号后出现冗余空格
- 先定位
- 通过
apply方法将函数批量应用到DataFrame的目标列
运行结果
处理后的cleaned_description列输出:
0 LEATHER SEATS xxx 1 SUNROOF yyy 2 STANDARD SEATS zzz
内容的提问来源于stack exchange,提问作者Wennian Li
相关产品推荐
相关产品推荐

