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

如何在Pandas DataFrame中按||||拆分列?已尝试方案未生效

解决Pandas按多字符分隔符拆分CSV列的问题

我来帮你搞定这个拆分列的问题!先梳理下你的场景:

你CSV里的目标列内容是这样的:

[u"ABC||||'ABCDadfasf||||'random something', 'another random']
[u"ABCD||||'ABCDadfasf||||'random somethingadf', 'another random adsd']
[u"ABDC||||'ABCDasdadfasf||||'random something random', 'another something random']

想要按||||拆分成三列,但用了指定sep的read_csv后,列根本没被拆分,代码是这样的:

Cov = pd.read_csv("path to CSV.csv", sep='||||', names = ["col 1", "col 2", "col 3"], engine = 'python')

问题出在哪?

核心原因是:当你用engine='python'时,Pandas会把sep参数的字符串当作正则表达式来解析。而|在正则里是表示“或”的特殊符号,||||会被解析成匹配空字符串,自然没法正确识别你要的分隔符。

两种可行的解决方案

方案1:读取时直接转义分隔符

把|转义成正则能识别的字面量,有两种简洁写法:

# 写法1:给每个|加转义符
Cov = pd.read_csv("path to CSV.csv", sep='\\|\\|\\|\\|', names=["col 1", "col 2", "col 3"], engine='python')

# 写法2:用原始字符串(r开头)加转义,更清爽
Cov = pd.read_csv("path to CSV.csv", sep=r'\|\|\|\|', names=["col 1", "col 2", "col 3"], engine='python')

方案2:先读整列,再拆分(更稳妥)

如果怕正则转义搞混,不如先把整个列读进来,再用str.split按字面量拆分,这种方式更直观,不容易出错:

# 先读取CSV,假设原始数据没有表头,用names指定原始列名
df = pd.read_csv("path to CSV.csv", header=None, names=['original_col'])

# 按'||||'拆分,expand=True会自动把拆分结果转成多列
df[["col 1", "col 2", "col 3"]] = df['original_col'].str.split('||||', expand=True)

# 可选:删掉原始的合并列
df = df.drop('original_col', axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:55:48