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

Pandas如何从ID列提取CODE字符串及后续浮点数值生成新列

Pandas提取ID列信息生成新列解决方案

实现思路

  • 直接使用Pandas字符串方法的str.extract()结合正则匹配完成需求,该方法会自动将未匹配到的行赋值为NaN,刚好满足仅处理含CODE行的要求
  • 正则规则匹配CODE字符串,跳过两者之间可能存在的空格,提取后续连续数字,最后拼接成要求的格式

完整实现代码

import pandas as pd

# 读取你的数据,示例用读csv,可根据自己的数据源调整读取方式
df = pd.read_csv("your_data.csv")

# 提取匹配内容并生成新列
extract_groups = df["ID"].str.extract(r"(CODE)\s*(\d+)")
df["new_col"] = (extract_groups[0] + " " + extract_groups[1]).str.strip()

正则说明

r"(CODE)\s*(\d+)"各部分含义:

  • (CODE):第一个分组,匹配固定字符串CODE
  • \s*:匹配0个或多个空白字符,兼容CODE和数字之间有没有空格的情况
  • (\d+):第二个分组,匹配连续的数字,遇到非数字字符自动停止

效果验证

示例输入

ID                        value1     value2    value3   Date
ICO54 XT   317            10         10        1000     2010-04-07
IP006 CODE 504            20         11        3000     2000-12-07
CODE99 2B06 NHH           20         130       8000     2001-10-18
CODE 133L                 20         10        18000    2001-10-21
CODE 196 ES MHE CXX NH053 8          100       12000    2009-08-12
CODE131ESAGEMSHRGEM014    8          100       12000    2009-08-12

输出结果

ID                        value1     value2    value3   Date        new_col
ICO54 XT   317            10         10        1000     2010-04-07  NaN
IP006 CODE 504            20         11        3000     2000-12-07  CODE 504
CODE99 2B06 NHH           20         130       8000     2001-10-18  CODE 99
CODE 133L                 20         10        18000    2001-10-21  CODE 133
CODE 196 ES MHE CXX NH053 8          100       12000    2009-08-12  CODE 196
CODE131ESAGEMSHRGEM014    8          100       12000    2009-08-12  CODE 131

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:45:00