首页 > 解决方案 > 熊猫读取具有不同列数的多个表

问题描述

如果这听起来像是一个重复的问题,我深表歉意,我发现了许多关于这个主题的相关帖子,但似乎没有一个为我的特定版本提供解决方案。我正在尝试读取一个空格分隔的表格数据文件,其中两个不同的表在整个文件中交替出现。这是一个示例

Test abc ...
Date xx/xx/xx

Timestep 0

    No. u              v           w           x 
    1   0.00E+00    0.00E+00    0.00E+00    0.00E+00
    9   0.00E+00    0.00E+00    0.00E+00    0.00E+00
    18  0.00E+00    0.00E+00    0.00E+00    -3.00000E+02
    27  0.00E+00    0.00E+00    0.00E+00    -3.00000E+02
    ....

    Timestep 0 (some more columns

    No. g              h           i       
    1   0.00E+00    0.00E+00    0.00E+00
    9   0.00E+00    0.00E+00    0.00E+00
    18  0.00E+00    0.00E+00    0.00E+00    
    27  0.00E+00    0.00E+00    0.00E+00    
    ......

Timestep 1

    No. u              v           w           x 
    1   0.00E+00    0.00E+00    0.00E+00    0.00E+00
    9   0.00E+00    0.00E+00    0.00E+00    0.00E+00
    18  0.00E+00    0.00E+00    0.00E+00    -3.00000E+02
    27  0.00E+00    0.00E+00    0.00E+00    -3.00000E+02
    ....

    Timestep 1 (some more columns)

    No. g              h           i       
    1   0.00E+00    0.00E+00    0.00E+00
    9   0.00E+00    0.00E+00    0.00E+00
    18  0.00E+00    0.00E+00    0.00E+00    
    27  0.00E+00    0.00E+00    0.00E+00    
    ......

并且上述模式在整个文件中交替重复。将这些数据读入熊猫数据框的最佳方法是什么?

标签: pythonpandas

解决方案


只是想在这里添加我的解决方案,即:

  1. 首先阅读带有额外填充列的整个内容(表格),以适应更长的文本行;
  2. 然后迭代并读取两个不同的表(基于给定的行数)到两个不同的数据帧中(跳过标题行);
  3. 最后删除在第一步中添加的填充列并为列命名。

推荐阅读