如何在pandas DataFrame中提取字符串列括号内的内容并生成新列
解决方案
直接使用pandas的str.extract()方法配合正则捕获组即可一步提取括号内的纯净内容,不需要多步拆分处理。
核心代码
# 正则解释:\(匹配左括号,(.*?)非贪婪匹配括号内所有内容作为捕获组,\)匹配右括号 df_abc['target_col'] = df_abc['title'].str.extract(r'\((.*?)\)', expand=False)
说明
expand=False参数会直接返回Series对象,可直接赋值给新列,无需额外处理拆分后的DataFrame- 该方法默认匹配字符串中第一个括号的内容,如果你需要处理多括号场景,可以改用
str.extractall()方法提取所有括号内容 - 如果你想沿用原来的split思路,也可以补充一步处理右括号,示例如下:
df_split = df_abc['title'].str.split('(', expand=True) df_abc['target_col'] = df_split[1].str.rstrip(')')
效果验证
对示例输入:
Some Data (More Info) Some Data (More Info) Some Data (More Info)
提取后的目标列内容为:
More Info More Info More Info
完全无多余括号符号,符合预期。
内容的提问来源于stack exchange,提问作者kitchen800
相关产品推荐
相关产品推荐

