pandas.read_csv()如何排除特定的分隔符组合



我有一个类似csv的:

文件:

1;a;3;4
1;2;b;4
1;[a;b];3;4

像pd.from_csv(文件,sep=';'(一样加载

返回错误:

ParserError:标记数据时出错。C错误:行中应为4个字段3、锯5

因为[a;b]被视为分隔符。在[ ]中是否有排除;的方法

感谢

p.s.由于的原因,无法更改文件

您可以使用;(?![^[]*])作为正则表达式分隔符,只匹配不在括号内的分号:

pd.read_csv(filename, sep=r';(?![^[]*])', engine='python')

演示:

text = '''1;a;3;4
1;2;b;4
1;[a;b];3;4
'''
import io
import pandas as pd
pd.read_csv(io.StringIO(text), sep=r';(?![^[]*])', engine='python')

输出:

1      a  3  4
0  1      2  b  4
1  1  [a;b]  3  4

regex演示

相关内容

  • 没有找到相关文章

最新更新