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

Pandas DataFrame字符串拆分为两列时如何保留分隔符

Pandas拆分字符串列保留分隔符方案

你当前拆分后分隔符丢失是因为str.split默认会把匹配到的分隔符直接剔除,只返回拆分后的内容片段,要保留分隔符可以用以下两种方法实现:

方法1:正则捕获组包裹分隔符

给拆分用的正则关键词加上捕获括号,str.split遇到正则捕获组时,会把匹配到的分隔符作为单独的列返回:

# 注意调整正则里关键词前后的空格,匹配你实际数据的格式
split_pattern = r'(Modified|Reset|Rebooted|Created|Disabled)'
new_auditlog = auditlog['Description'].str.split(split_pattern, n=1, expand=True)

# 拆分后共3列:0列为关键词前的内容、1列为匹配到的关键词、2列为关键词后的内容
# 可根据你的业务需求拼接字段
auditlog["Action"] = new_auditlog[0] + new_auditlog[1] # 前缀+关键词作为Action
auditlog["Something"] = new_auditlog[2]

auditlog.drop(columns=["Description"], inplace=True)

方法2:零宽断言拆分(拆分后仍为2列)

如果不需要把关键词单独拆成一列,希望拆分后关键词直接附在某一段内容里,可以用零宽断言匹配分隔符的边界位置拆分,不会吃掉分隔符:

# 零宽后行断言,匹配关键词后的位置拆分,关键词会保留在第一列末尾
split_pattern = r'(?<=Modified|Reset|Rebooted|Created|Disabled)'
new_auditlog = auditlog['Description'].str.split(split_pattern, n=1, expand=True)

auditlog["Action"] = new_auditlog[0] # 已包含关键词
auditlog["Something"] = new_auditlog[1]

auditlog.drop(columns=["Description"], inplace=True)

如果需要把关键词附在第二列开头,改用正向先行断言即可:r'(?=Modified|Reset|Rebooted|Created|Disabled)'


内容的提问来源于stack exchange,提问作者René Christensen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:45:03