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

如何用Pandas将多行多列TXT转为带自定义表头的DataFrame

解决Pandas读取TXT数据合并为一列的问题

两种可行解决方案

方案1:读取文件时直接拆分列

如果还未读取文件,直接用pd.read_csv()并指定空白分隔符,同时跳过第一行的文件名:

  • 使用sep='\s+'匹配任意数量的空白字符(空格、制表符等)
  • skiprows=1跳过第一行的文件名
  • header=None表示文件本身没有表头,后续自定义列名
import pandas as pd

# 读取TXT文件并拆分列
df = pd.read_csv('FSXC_20129_2024120000.txt', sep='\s+', skiprows=1, header=None)

# 设置自定义表头
df.columns = ['ID_1', 'ID_2', 'ID_3', 'ID_4', 'ID_5', 'ID_6']

# 查看结果
print(df)

方案2:已读取为单列后拆分

如果已经将数据读入成了单列DataFrame,可通过字符串拆分处理:

  • 用str.split('\s+', expand=True)将每行内容按空白拆分成多列
  • 跳过第一行的文件名
  • 转换列数据类型为数值型(可选但推荐)
import pandas as pd

# 假设已读取的单列数据存储在df_single中
df_single = pd.read_csv('FSXC_20129_2024120000.txt', header=None)

# 拆分单列数据为多列
df_split = df_single[0].str.split('\s+', expand=True)

# 跳过第一行的文件名,并设置自定义表头
df_split = df_split.iloc[1:]
df_split.columns = ['ID_1', 'ID_2', 'ID_3', 'ID_4', 'ID_5', 'ID_6']

# 将列转换为数值类型
df_split = df_split.apply(pd.to_numeric, errors='coerce')

# 查看结果
print(df_split)

关键注意事项

  • 确保跳过第一行的文件名,避免它被当作数据行处理
  • 使用\s+作为分隔符能兼容不同数量的空格或制表符
  • 转换数据类型为数值型可以方便后续的数据分析操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:24:55