如何在Pandas中提取列字符串指定部分并赋值至新列?
在Pandas中提取指定字符串到新列
直接使用Pandas的str.extract()方法配合精准的正则表达式,就能提取任意位置的XPIC并生成新列,代码示例如下:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'raw_str': ['MC-ABC 2+0/XPIC 2+0', 'MisMatch!MC-ABS 2+0 ::: / XPIC 2+0'] }) # 提取XPIC到新列 df['target_col'] = df['raw_str'].str.extract(r'(XPIC)', expand=False)
关键说明
- 正则表达式
(XPIC)是一个捕获组,会精准匹配字符串中出现的XPIC序列,无论它处于什么位置 expand=False确保返回的是Series而非DataFrame,直接赋值给新列更方便
如果需要兼容大小写变体(比如xpic、Xpic),可以添加忽略大小写的标志:
import re df['target_col'] = df['raw_str'].str.extract(r'(XPIC)', flags=re.IGNORECASE, expand=False) # 可选:统一转为大写格式 df['target_col'] = df['target_col'].str.upper()
常见问题排查
如果之前用正则失败,大概率是这两个原因:
- 正则表达式过度匹配了
XPIC前后的符号/空格,导致无法精准捕获目标 - 未正确使用捕获组,
str.extract()需要明确的捕获组才能返回匹配结果
内容的提问来源于stack exchange,提问作者Archana
相关产品推荐
相关产品推荐

