开发者社区> 问答> 正文

astropy.table.Table。对于“无标题”格式,read似乎没有正常工作

我试图读取混合数据类型的数据保存到一个文件(这里我使用'testfile.txt')与表单:

a,1
b,2
1.0     2.0     abc
3.0     4.0     edf
5.0     6.0     ghk

以访问和操作第3行及以下的数据为目标(例如,绘制列,执行分析…)。一段时间以来,我一直在使用astropy.table.Table来做这件事。读功能:

from astropy.table import Table

raw_data = Table.read(testfile.txt,format='ascii.no_header',delimiter='\t',data_start=3,guess=False)

这是工作了一段时间,但现在我得到以下错误: InconsistentTableError:标题列的数量(1)与数据行1中的数据列不一致 给人的印象是,这个错误来自于试图读取标题(但格式是'no_header')。虽然我不相信从它开始工作的时候有什么变化,但我确实把astropy升级到了4.0版本,但我怀疑情况是否如此。奇怪的是如果我使用“ascii”格式。fixed_width_no_header"具有相同的kwargs:

raw_data = Table.read(testfile.txt,format='ascii.fixed_width_no_header',delimiter='\t',data_start=3,guess=False)

数据实际上是读入的,没有错误,但是我的列不是固定宽度的,所以这没有帮助。 问题来源StackOverflow 地址:/questions/59381942/astropy-table-table-read-appears-to-not-be-functioning-properly-for-no-header

展开
收起
kun坤 2019-12-27 17:22:40 658 0
1 条回答
写回答
取消 提交回答
  • 它确实出现了一个错误,在C“快速阅读器”的no_header格式。我将对此打开一个问题(https://github.com/astropy/astropy/issues/9797)。但是(较慢的)纯Python实现通过添加fast_reader=False来实现:

    >>> ascii.read(txt, format='no_header', data_start=2, guess=False, fast_reader=False)
    <Table length=3>
      col1    col2  col3
    float64 float64 str3
    ------- ------- ----
        1.0     2.0  abc
        3.0     4.0  edf
        5.0     6.0  ghk
    

    注意,你也可以允许猜测:

    >>> ascii.read(txt, format='no_header', data_start=2)
    <Table length=3>
      col1    col2  col3
    float64 float64 str3
    ------- ------- ----
        1.0     2.0  abc
        3.0     4.0  edf
        5.0     6.0  ghk
    
    2019-12-27 17:22:46
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载