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

如何用Python Pandas DataFrame从Excel列提取UK Pro后的产品编号

从Pandas DataFrame提取特定产品编号

问题背景

需要从DataFrame的Product列中提取位于**"UK Pro"之后的3-4位数字**作为产品编号,示例数据如下:

Checking center : King 2000 : UK Pro 1000 : London
Checking center : Queen 321 : UK Pro 250 : Spain
CC : UK Pro 3000 : France
CC : UK Pro 810 : Poland

期望输出产品编号列:1000、250、3000、810

用户尝试以下两种str.split方法未得到正确结果:

df['Product #'] = df1['Product'].str.split(':').str[1]
df1['Product #'] = df1['Product'].str.split('UK Pro', 1).str[0].str.strip()

正确解决方案

方法1:正则表达式提取(推荐)

利用Pandas的str.extract方法结合正则表达式,精准匹配"UK Pro"后的3-4位数字,这是最稳定的方案:

import pandas as pd

# 提取产品编号
df1['Product #'] = df1['Product'].str.extract(r'UK Pro\s+(\d{3,4})', expand=False)

正则表达式说明:

  • UK Pro:匹配固定标识字符串
  • \s+:匹配"UK Pro"与编号之间的一个或多个空格(兼容空格数量不一致的情况)
  • (\d{3,4}):捕获3到4位的数字,作为我们需要的产品编号

方法2:改进版split方法

如果倾向于使用split操作,需要调整分割逻辑:先按"UK Pro"分割取后半部分,再按冒号分割取前半部分,最后去除多余空格:

df1['Product #'] = df1['Product'].str.split('UK Pro', 1).str[1].str.split(':').str[0].str.strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:15:40