使用Pandas读取含多分隔符(;和:)且列数可变的文件问题
解决pandas读取多分隔符(;和:)且列数不一的文件问题
你之前的代码没正确拆分:分隔的内容,核心问题是字符串转义导致正则表达式失效。直接用下面的写法就能解决:
import pandas as pd PATH = "你的文件路径" # 用原始字符串定义正则,匹配;、:和任意空白字符 df = pd.read_csv( PATH, sep=r';|:|\s+', engine='python', header=None, skip_blank_lines=True )
关键说明:
- 用原始字符串
r""包裹正则表达式,避免Python转义干扰,确保;和:都能被正确匹配。 - 设置
header=None:因为你的文件没有统一表头,且每行列数不同,这样pandas会自动按最大列数对齐,缺失列填充NaN。 skip_blank_lines=True:跳过文件中的空行,避免读取无效数据。
用你的样本数据测试,第一行会被拆分成10列,包含S、540356274820466、0、NS、2.077867e+01、5、1.23552等所有拆分后的字段,完全符合预期。
如果还是有异常,检查下文件里的:是不是全角字符(:),如果是,把正则里的:改成:即可。
内容的提问来源于stack exchange,提问作者cmdfcs
相关产品推荐
相关产品推荐

