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

Python Pandas:如何去除DataFrame中重复|字符仅保留一个?

解决Pandas中去除重复竖线(|)的问题

你之前的正则写法没生效,核心问题是竖线(|)是正则表达式的元字符,它代表“或”匹配逻辑,直接写|会被解析为通配符,而非字面意义的竖线,必须用反斜杠转义为\|才能正确匹配。

方法一:正则替换(最简洁)

使用\|+匹配一个或多个连续的字面竖线,直接替换为单个竖线:

import pandas as pd
df = pd.DataFrame({'code': ['10SGD01AA103||||||10SGD01AA105||||||10SGD01AA111']})
df['code'] = df['code'].str.replace(r'\|+', '|', regex=True)
print(df['code'].iloc[0])
# 输出:10SGD01AA103|10SGD01AA105|10SGD01AA111

方法二:分割后过滤拼接(兼容首尾空值场景)

如果你的数据可能存在开头/结尾的竖线,这种方法可以同时过滤掉空值:

df['code'] = df['code'].str.split('|').apply(lambda x: '|'.join([item for item in x if item]))

原理是先按竖线分割成列表,过滤掉分割产生的空字符串,再用单个竖线拼接有效内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:28:15