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

pandas使用read_fwf读取制表符分隔文件列名未拆分问题求助

问题根因

read_fwf是固定宽度格式(Fixed Width Format)文件的专用读取接口,默认按照预设的列宽度拆分字段,你传入的sep参数对该方法不生效,无论怎么配置制表符相关的分隔符规则,都不会按分隔符拆分字段,这是所有列名合并为单个字段的核心原因。

解决方案

方案1:适配分隔符类文件的最优方案(推荐)

如果你的test.txt确实是制表符分隔的非固定宽度文件,直接替换为read_csv方法即可,适配你的参数的代码如下:

df = pd.read_csv("test.txt", sep='\t', header = 20, engine='python')
print(list(df.columns.values))

该方法原生支持按分隔符拆分字段,完全满足你的读取需求。

方案2:确实需要使用read_fwf读取固定宽度文件的解决方案

如果你的数据部分是固定宽度格式,仅表头行是制表符分隔,可单独读取表头拆分后指定给读取参数:

# 提前读取拆分表头(header=20对应0索引的第20行)
with open("test.txt", "r", encoding="utf-8") as f:
    all_lines = f.readlines()
col_names = all_lines[20].strip().split("\t")

# 读取数据时跳过前21行(包含表头行),指定拆分好的列名
df = pd.read_fwf("test.txt", skiprows=21, names=col_names, engine='python')
print(list(df.columns.values))

注意事项

pandas的行索引默认从0开始计数,如果你配置的header=20是指肉眼计数的文件第21行,可根据实际情况调整上述代码中的行号参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:01