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

如何从Pandas列中提取符合指定规则的首个连续数字序列

解决方案

可以通过Pandas的str.extract()结合正则表达式实现需求,直接用一行代码完成数据清洗:

df['col'] = df['col'].str.extract(r'(?i)(?:nbu\D*)?(\d+)', expand=False)

正则表达式说明

  • (?i):启用不区分大小写匹配,能识别NBU/nbu/NbU等任意大小写组合形式
  • (?:nbu\D*)?:非捕获可选组,匹配nbu后跟随的任意数量非数字字符(空格、-、/等都包含在内),?保证没有nbu时该组会被忽略
  • (\d+):捕获组,匹配并提取第一个连续数字序列,这就是最终需要的结果

测试示例

import pandas as pd

# 构造测试数据
data = {
    'col': [
        'nbu 123456',
        'NBU-123456',
        'nbu/ 123456 blah12',
        '123456',
        '123456_123',
        'nbu12 3455'
    ]
}
df = pd.DataFrame(data)

# 执行提取
df['extracted_num'] = df['col'].str.extract(r'(?i)(?:nbu\D*)?(\d+)', expand=False)

print(df)

输出结果:

col extracted_num
0            nbu 123456         123456
1           NBU-123456         123456
2  nbu/ 123456 blah12         123456
3               123456         123456
4            123456_123         123456
5           nbu12 3455             12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:25:04