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

如何在Pandas中拆分含字符与数字的列以提取包装规格?

问题:拆分DataFrame中prod_name列的包装规格与产品名称

原始数据

Prod_nbr| prod_name
5   Natural chip companyseasalt175g
66  cC Nacho cheese 172g
61  Smiths Crinkle cut chips chicken135g

期望输出

Prod_nbr|pack|prod_name
5          175g  Natural chip....
66         172g  cC Nacho cheese..
61         135g   Smiths Crinkle...

错误尝试代码

df['pack'] = df['prod_name'].str.extract(r'\d+\s*(\w{,5})\b').fillna('')[0]

正确实现方法

核心思路

  • 提取prod_name末尾的数字+单位组合作为pack列
  • 移除prod_name中的包装规格内容,保留纯产品名称

代码实现

# 提取包装规格:匹配字符串末尾的数字+字母组合
df['pack'] = df['prod_name'].str.extract(r'(\d+[a-zA-Z]+)$')

# 清理产品名称:移除包装规格并去除多余空格
df['prod_name'] = df.apply(lambda row: row['prod_name'].replace(row['pack'], '').strip(), axis=1)

补充说明

  • 正则(\d+[a-zA-Z]+)$精准匹配末尾的数字+字母格式,适配示例中的175g/172g这类规格
  • 如果你的数据中单位只有特定类型(比如仅g、kg、ml),可以把正则优化为(\d+(?:g|kg|ml|l))$,进一步缩小匹配范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:12:01