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

如何在Pandas中拆分含章节编号的文本列生成两列?

拆分Pandas DataFrame中的章节编号与文本

可以通过正则表达式配合Pandas的字符串提取方法实现需求,具体步骤如下:

1. 构造示例数据(模拟你的DataFrame)

import pandas as pd

# 模拟你的原始数据
data = {
    'ColumnA': [
        '4 Requirements',
        'Requirement blah blah',
        'Requirement blah blah blah',
        '4.1.1 Requirement Subsection',
        '4.1.1.1 Requirement subsection subsection',
        'blah blah blah'
    ]
}
df = pd.DataFrame(data)

2. 正则提取拆分列

使用str.extract方法,通过正则匹配开头的章节编号(数字+可选的多级编号),同时分离出剩余文本:

# 正则表达式说明:
# ^(\d+(?:\.\d+)*)?  匹配行首可选的章节编号(支持多级如4.1.1、4.1.1.1)
# \s*                匹配编号与文本之间的任意空格
# (.*)               匹配剩余的全部文本
df[['ColA', 'ColB']] = df['ColumnA'].str.extract(r'^(\d+(?:\.\d+)*)?\s*(.*)', expand=True)

# 将提取不到编号的空值(NaN)替换为空字符串,更贴合需求格式
df['ColA'] = df['ColA'].fillna('')

3. 结果展示

处理后的DataFrame如下:

ColumnA    ColA                                   ColB
0    4 Requirements       4                          Requirements
1  Requirement blah blah                             Requirement blah blah
2  Requirement blah blah blah                       Requirement blah blah blah
3  4.1.1 Requirement Subsection  4.1.1              Requirement Subsection
4  4.1.1.1 Requirement subsection subsection  4.1.1.1  Requirement subsection subsection
5                blah blah blah                             blah blah blah

如果你的原始数据中有更复杂的编号格式(比如带字母),可以微调正则表达式的匹配规则,但当前正则已覆盖你给出的数字多级编号场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:55:19