如何在Pandas DataFrame中提取指定列以\开头、]结尾的内容生成新列
Pandas DataFrame指定规则子串提取实现方案
你之前使用split方法的问题在于会保留]之前的全部内容,无法过滤反斜杠之前的多余前缀,正确实现可以用str.extract结合正则匹配完成:
# 基础实现,无匹配内容时返回NaN df['new_column'] = df['A'].str.extract(r'(\\.*?])') # 可选:无匹配时返回空字符串而非NaN df['new_column'] = df['A'].str.extract(r'(\\.*?])').fillna('')
规则说明
- 正则表达式中
()包裹的内容为需要提取的捕获组 \\匹配目标起始的反斜杠(加r前缀声明原始字符串,避免转义冲突).*?为非贪婪匹配,会匹配任意字符直到遇到最近的结束标记]- 最终匹配结果刚好是从第一个反斜杠开始到最近的
]结束的子串,完全符合需求
内容的提问来源于stack exchange,提问作者helpme
相关产品推荐
相关产品推荐

