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

如何将Synchro导出的TXT表格转为规范CSV并移除冗余列

处理Synchro导出TXT转Excel可读格式的问题

Synchro导出的TXT表格格式混乱,直接用pd.read_csv按制表符分隔读取时,部分条目连「Lane Group」行都读丢了,列分隔完全错位。最终要实现的是把数据转成Excel能正常识别的格式,同时删掉SBR列之后的冗余列。

原始TXT数据示例

Lane Group                   WBT   WBR NBL NBT NBR SBL SBT SBR Ø3  Ø7

 Lane Configurations          <1>    0   1   2>  0   1   2   1

最初踩坑的代码

一开始直接用pd.read_csv硬读,结果因为格式混乱导致列识别错误,部分数据丢失,代码如下:

AMtxt = pd.read_csv('AM.txt', sep='\t+', header = None, error_bad_lines=False, warn_bad_lines = False, quoting=3, skiprows=1, engine='python')

AMtxt.drop(columns = AMtxt.columns[-2:], axis = 1, inplace = True)

AMtxt.to_csv('AM.csv')

可行的解决代码

换了个思路:逐行读取文件,严格按制表符拆分列,再清理每个单元格的空格,完美解决了列错位和数据丢失的问题。如果需要精确移除SBR之后的冗余列,也可以在清理后添加对应逻辑,代码如下:

AMtxt = pd.DataFrame(open('AM.txt','r').readlines())
AMtxt = AMtxt[0].str.split('\t', expand = True)

# 清理每个单元格的前后空格
for column in AMtxt:
    AMtxt[column] = AMtxt[column].str.strip()

# 精确移除SBR列之后的冗余列(可选)
sbr_col_idx = AMtxt.columns[AMtxt.loc[0] == 'SBR'][0]
AMtxt = AMtxt.loc[:, :sbr_col_idx]

AMtxt.to_csv('AM.csv')

解决思路说明

  1. 逐行读取保留了原始每行的完整结构,避免了pd.read_csv自动解析时的格式兼容问题;
  2. 用str.split('\t', expand=True)严格按单个制表符拆分列,不会像sep='\t+'那样合并多个制表符导致列数错位;
  3. str.strip()清理单元格前后空格,确保数据整洁,导出的CSV能被Excel正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:45:25