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

如何从Pandas DataFrame字符串列提取指定内容至新列

Pandas提取字符串指定内容的实现方案

给定如下Pandas DataFrame:

import pandas as pd

df = pd.DataFrame([
    "Lyreco A-Type small 2i",
    "Lyreco C-Type small 4i",
    "Lyreco N-Part medium", 
    "Lyreco AKG MT 4i small",
    "Lyreco AKG/ N-Type medium 4i",
    "Lyreco C-Type medium 2i",
    "Lyreco C-Type/ SNU medium 2i",
    "Lyreco K-part small 4i",
    "Lyreco K-Part medium", 
    "Lyreco SNU small 2i",
    "Lyreco C-Part large 2i",
    "Lyreco N-Type large 4i"
], columns=["Column_1"])

需要新增Column_2列,提取每行字符串中Lyreco 之后、尺寸标识(small/medium/large)之前的核心内容,最终目标结果如下:

Column_1Column_2
Lyreco A-Type small 2iA-Type
Lyreco C-Type small 4iC-Type
Lyreco N-Part mediumN-Part
Lyreco AKG MT 4i smallAKG MT
Lyreco AKG/ N-Type medium 4iAKG/ N-Type
Lyreco C-Type medium 2iC-Type
Lyreco C-Type/ SNU medium 2iC-Type/ SNU
Lyreco K-part small 4iK-part
Lyreco K-Part mediumK-Part
Lyreco SNU small 2iSNU
Lyreco C-Part large 2iC-Part
Lyreco N-Type large 4iN-Type

解决方案:正则表达式提取

利用Pandas的str.extract方法,结合正则表达式精准匹配目标内容,代码实现如下:

# 定义匹配正则
pattern = r'Lyreco\s+(.*?)\s+(?:\d+i\s+)?(?:small|medium|large)'

# 新增目标列
df['Column_2'] = df['Column_1'].str.extract(pattern)

# 输出结果
print(df)

正则逻辑说明

  • Lyreco\s+:匹配固定前缀"Lyreco "(兼容多个空格的情况)
  • (.*?):非贪婪捕获目标内容,这部分就是最终要提取的Column_2值
  • \s+(?:\d+i\s+)?:匹配可选的数字+i后缀(比如" 4i "),(?:...)为非捕获组,仅用于定位边界不参与提取
  • (?:small|medium|large):匹配尺寸标识词,同样作为边界定位,不参与提取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:10:34