您的位置:首页 >Pandas实战:按末尾标点复制行并去标点
发布于2026-03-09 阅读(0)
扫一扫,手机访问

本文介绍如何使用 Pandas 高效识别并复制以问号、句号或感叹号结尾的行,同时生成对应去标点的新行,适用于数据清洗与文本增强场景。
本文介绍如何使用 Pandas 高效识别并复制以问号、句号或感叹号结尾的行,同时生成对应去标点的新行,适用于数据清洗与文本增强场景。
在自然语言处理或对话数据预处理中,常需对带标点的句子进行“标准化扩展”——例如将 "Hi!" 拆分为原始带标点行和去标点变体行,以提升模型对语气变体的鲁棒性。Pandas 提供了简洁高效的向量化操作来实现这一目标。
核心思路是三步法:
以下是完整可运行示例:
import pandas as pd
# 构造示例数据
df = pd.DataFrame({
'msg': ["hello", "hi!", "What?", "OK.", "test"],
'label': [1, 0, 2, 3, 4]
})
# 步骤1:筛选以 ?, ., ! 结尾的行(注意:传入元组而非字符串)
mask = df['msg'].str.endswith(('?', '.', '!'))
punc_rows = df[mask].copy() # 显式 copy 避免 SettingWithCopyWarning
# 步骤2:批量移除末尾标点(安全写法:仅当长度≥1时截取)
punc_rows['msg'] = punc_rows['msg'].str.slice(stop=-1)
# 步骤3:合并原表与增强表
result = pd.concat([df, punc_rows], ignore_index=True)
print(result)输出结果:
msg label 0 hello 1 1 hi! 0 2 What? 2 3 OK. 3 4 test 4 1 hi 0 2 What 2 3 OK 3
⚠️ 注意事项:
通过此方法,你可在一行代码级精度完成语义等价但形式不同的样本扩充,为下游任务提供更丰富的训练信号。
上一篇:通用机打发票是否含税?
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9