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

使用Pandas读取含交替多列数表格的空格分隔数据文件遇阻

处理交替出现的不同列数空格分隔表格

我之前处理过类似的混合表格文件,给你一个实用的Python方案,核心思路是逐行识别表格类型,分情况存储数据:

核心实现步骤

  • 逐行读取文件,跳过空行和无关描述行(比如Test、Date、Timestep这类标识行)
  • 通过表头行(比如你示例里的No. u v w x)判断当前表格的列数/类型
  • 将对应的数据行存入不同的容器,后续还能转换成DataFrame方便分析

代码示例

基础版:分表存储原始数据

# 初始化两个列表分别存储两种表格的数据
table1 = []  # 对应包含x列的表格(5列)
table2 = []  # 对应另一种列数的表格
current_table = None

with open('your_data_file.txt', 'r') as file:
    for line in file:
        stripped_line = line.strip()
        if not stripped_line:
            continue  # 跳过空行
        
        # 识别表头行,切换当前表格类型
        if stripped_line.startswith('No.'):
            header = stripped_line.split()
            # 根据列数判断(或者根据是否包含'x'字段判断,更灵活)
            if len(header) == 5:
                current_table = table1
                table1.append(header)  # 保存表头
            elif len(header) == 4:
                current_table = table2
                table2.append(header)
            continue
        
        # 跳过无关的描述性行
        if any(kw in stripped_line for kw in ['Test', 'Date', 'Timestep']):
            continue
        
        # 处理数据行,确保列数匹配再添加
        if current_table is not None:
            data = stripped_line.split()
            if len(data) == len(current_table[0]):
                current_table.append(data)
            else:
                print(f"跳过格式错误的行: {stripped_line}")

进阶版:转换成Pandas DataFrame(方便数据分析)

如果需要做后续的数据分析,可以把列表转换成DataFrame:

import pandas as pd

# 转换第一种表格
df1 = pd.DataFrame(table1[1:], columns=table1[0])
# 将数值列转为数值类型
numeric_cols1 = table1[0][1:]
df1[numeric_cols1] = df1[numeric_cols1].apply(pd.to_numeric)

# 转换第二种表格
df2 = pd.DataFrame(table2[1:], columns=table2[0])
numeric_cols2 = table2[0][1:]
df2[numeric_cols2] = df2[numeric_cols2].apply(pd.to_numeric)

# 查看结果
print("第一种表格数据:")
print(df1.head())
print("\n第二种表格数据:")
print(df2.head())

注意事项

  • 如果表头的标识不是No.,可以调整判断条件(比如检查是否包含多个字段名,如u、v)
  • 如果数据行有格式异常,代码里的跳过逻辑可以换成日志记录,方便排查问题
  • split()方法会自动处理任意数量的空格分隔,不用担心多个空格的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:28:12