2013-01-21 46 views
1

是否可以使用基于列的标签读取缺少数据的表格?我有以下表格:阅读缺少数据的表格

     Band        Band    % of 
    Band Peak   for       % for Area   Total 
    No. Pos. Delta Sep. Separ. Height FWHM Gauss Area Ratio Area Area 
    4 214.01 4.67 3  2.70 5737 1.69 90 3 0.67 10836 30.76 
    2 212.04 2.70 1  2.70 1391 2.10 90 1 0.67 3254 9.24 
    3 211.31 1.97 0    8580 1.70 90 0   16255 46.14 
    1 209.34 0.00 0    2193 2.00 90 0   4882 13.86 

我想以基于列的方式读取它。我相信pandas可以做到。我会跳过前两行 - 但我怎么让pandas以基于列的方式读取其余数据?

任何其他解析这些表(缺少数据)的解决方案也可以。

+0

我即将被抓住,但您可以在最新版本的熊猫中使用'read_fwf'。 – DSM

+0

请做出回答:'pandas.read_fwf(“1.txt”,宽度= [6,8,7,5,8,8,6,6,5,6,8,7],skiprows = 3) '工作。 – Adobe

回答

3

哦,我成功做到这一点的:

asciitable.read("1.txt", Reader=asciitable.FixedWidthNoHeader, 
       col_starts=(8, 16, 22, 28, 36, 44, 49, 55, 60, 67, 74), 
       col_ends =(14, 21, 25, 34, 42, 48, 53, 58, 65, 73, 80)) 

丢弃前三排。

编辑

由于DSM笔记 - 同样可以用pandas来来达到的:

pandas.read_fwf("1.txt", widths=[6, 8, 7, 5, 8, 8, 6, 6, 5, 6, 8, 7], skiprows=3) 
0

怎么样:

import pandas as pd 
pd.read_table('example.txt', skiprows=3, sep=r'\s*') 

如果那里有只在中间我不空格没有想到它会工作,但很难说没有样本数据。

+0

你有样本数据 - 我引用问题中的代表性数据。我试过你的例子,它不起作用:它不能考虑到一些值丢失。 – Adobe

+0

我想我是想知道是否有任何非空格字符在空白空间 - 就像一个标签。但是我想如果有'read_table()'会解析它就好了。 – zach