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

如何从DataFrame中提取多个子串并添加为新列?

从Pandas DataFrame提取子串并添加为新列

解决方案:使用正则表达式提取

借助Pandas的str.extract()方法,结合正则表达式匹配目标子串,可直接批量生成新列。

1. 构造示例数据

import pandas as pd

# 构造你的示例DataFrame
data = {
    'Serienummer': [
        'SAA VKS MSI A1 R 7,500 1',
        'SAA VKS MSI A1P 7,500 1',
        'SAA VKS MSI A1 R 14,370 5'
    ]
}
df = pd.DataFrame(data, index=[15, 29, 36])

2. 提取子串并添加新列

# 用正则分组匹配,一次性提取三个目标子串
df[['column1', 'column2', 'column3']] = df['Serienummer'].str.extract(r'.*(A\d).*?(\d+,\d+) (\d)$')

# 若第二行的column1需要从A1改为A2(疑似输入笔误),可单独修正
# df.loc[29, 'column1'] = 'A2'

3. 结果展示

执行后得到的DataFrame如下:

Serienummer column1 column2 column3
15  SAA VKS MSI A1 R 7,500 1       A1    7,500       1
29   SAA VKS MSI A1P 7,500 1       A1    7,500       1
36  SAA VKS MSI A1 R 14,370 5      A1   14,370       5

正则表达式说明

  • .*:匹配任意字符直到找到目标片段
  • (A\d):捕获以A开头、后跟一位数字的片段(对应column1)
  • .*?:非贪婪匹配任意字符,避免过度匹配
  • (\d+,\d+):捕获带逗号的数值格式(对应column2)
  • (\d)$:捕获字符串末尾的单个数字(对应column3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:25:23