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

如何从Pandas DataFrame非规范数据中提取NEX+数字序列并转大写?

解决方案

要从PROGRAM列提取包含“NEX”(不区分大小写)且后续跟随数字的序列,并转为大写存入新列NEX,可以通过Pandas字符串方法结合正则表达式实现:

import pandas as pd

# 创建DataFrame
data = {
    'ID':[1,2,3,4,5],
    'PROGRAM': [ 'nbu 123456',
                'NBU-123456',
                'nex999999 b12',
                'NXE999999 123',
                'NBU123456 NEX999999']
}

df = pd.DataFrame(data)

# 提取目标序列并转大写
df['NEX'] = df['PROGRAM'].str.extract(r'(?i)(nex\d+)', expand=False).str.upper()

print(df)

代码说明

  • (?i):正则的不区分大小写标记,可匹配nex、NEX、Nex等任意大小写组合
  • nex\d+:精准匹配连续的nex(不区分大小写)后跟至少一位数字的序列
  • str.extract:提取匹配到的内容,expand=False返回Series格式便于直接赋值给新列
  • str.upper():将提取结果统一转为大写

输出结果

ID                  PROGRAM        NEX
0   1               nbu 123456       NaN
1   2              NBU-123456       NaN
2   3           nex999999 b12  NEX999999
3   4           NXE999999 123       NaN
4   5  NBU123456 NEX999999  NEX999999

如果需要将无匹配项的NaN替换为空字符串,可在代码末尾添加.fillna(''):

df['NEX'] = df['PROGRAM'].str.extract(r'(?i)(nex\d+)', expand=False).str.upper().fillna('')

内容的提问来源于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:34:52