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

Python移除括号外字符串:保留括号内内容及无括号行

解决方案:提取括号内内容并保留无括号行的原数据

你遇到的问题是因为str.extract在匹配不到正则时会返回NaN,而非原内容。这里提供两种可行的解决方法:

方法一:str.extract + fillna

利用extract捕获括号内的内容,再用原列数据填充匹配失败产生的NaN值:

df['test'] = df['test'].str.extract(r'\((.*)\)', expand=False).fillna(df['test'])
  • expand=False确保返回结果是Series而非DataFrame,方便后续填充
  • fillna(df['test'])将未匹配到括号的行替换为原始内容

方法二:str.replace直接替换括号外内容

通过正则匹配括号外的所有内容,直接替换为括号内的捕获组,未匹配到括号的行将保留原内容:

df['test'] = df['test'].str.replace(r'.*\((.*)\).*', r'\1', regex=True)
  • 正则.*\((.*)\).*会匹配从开头到左括号、右括号到结尾的所有内容,仅捕获括号内的部分
  • 替换为\1(第一个捕获组)即可得到括号内的内容,无括号的行因不匹配正则,内容保持不变

测试验证

针对你提供的测试数据:

test
(ABC)
ABC(DEF)G
ABC

两种方法处理后均会得到期望输出:

test
ABC
DEF
ABC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:22:04