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

如何将使用竖线加空格作为分隔符的Excel文件读取为pandas DataFrame

解决pandas读取多分隔符文件的问题

你遇到的问题核心有两个:

  • 分隔符的正则写法错误:|在正则语法中是代表“或”的特殊字符,你之前写的\s+|本质是匹配“一个以上空白”或者“空值”,自然达不到同时匹配竖线和空格的效果
  • 注意文件格式适配:pd.read_csv仅用来读取文本类表格文件,如果你手里的.xls是标准二进制Excel文件,用这个方法本身就不生效;如果是改了后缀名的竖线分隔文本文件,可以直接用下方第一种方案

方案1:文件为改后缀的文本类表格

将sep参数设为匹配空格/竖线的正则即可,同时指定引擎为python避免正则兼容告警,代码如下:

import pandas as pd
DF = pd.read_csv(r'Desktop\Automation\File.xls', sep=r'[\s|]+', engine='python')

用你提供的示例内容测试,读取后会得到4列结构正常的DataFrame,列名分别为ID、Name、Job、Nationality,无数据错位问题。


方案2:文件为标准二进制.xls格式

先读取Excel文件再做列拆分即可,代码如下:

import pandas as pd
# 读取原始Excel文件
DF = pd.read_excel(r'Desktop\Automation\File.xls')
# 按竖线拆分所有列
DF = DF.iloc[:,0].str.split('|', expand=True).iloc[:,:-1]
# 重命名列名
DF.columns = ['ID','Name','Job','Nationality']
# 拆分ID和Name的空格分隔内容
DF[['ID','Name']] = DF['ID'].str.split('\s', expand=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:48:01