如何使用Python或Pandas为DataFrame每行(p)标签内容添加顺序编号
Pandas DataFrame 文本字段p标签自动添加序号实现方法
实现思路
- 逐行处理
data字段的文本内容 - 利用正则匹配所有
(p)标签后紧跟的文本内容 - 每行内单独维护计数器,每匹配到一个
(p)标签就累加计数,替换为带序号的格式
完整实现代码
import pandas as pd import re # 1. 构造示例DataFrame df = pd.DataFrame({ 'data': [ '(p) apple (/p) (p) boy (/p) (p) cat (/p)', '(p) apple (p) (p) boy (/p)' ] }) # 2. 定义单行文本处理逻辑 def add_p_sequence(content): seq_count = 0 def replace_callback(match_obj): nonlocal seq_count seq_count += 1 raw_text = match_obj.group(1).strip() return f"(p) {seq_count}.{raw_text}" # 正则匹配规则:匹配(p)后到下一个标签前的所有内容 return re.sub(r'\(p\)\s*([^\(]+)', replace_callback, content) # 3. 批量处理data字段 df['data'] = df['data'].apply(add_p_sequence) # 输出结果验证 print(df['data'].tolist())
输出结果
运行后输出完全符合需求:
['(p) 1.apple (/p) (p) 2.boy (/p) (p) 3.cat (/p)', '(p) 1.apple (p) (p) 2.boy (/p)']
适配说明
无需提前预设每行(p)标签数量,代码会自动识别每行标签个数逐次编号,适配任意标签数量的场景。如果标签内文本包含特殊格式,仅需要调整正则匹配规则即可兼容。
内容的提问来源于stack exchange,提问作者nikhil kumar
相关产品推荐
相关产品推荐

