我试图读取混合数据类型的数据保存到一个文件(这里我使用'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
它确实出现了一个错误,在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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。