我正在尝试使用astropy qazxsw poi读取.txt文件:
Table.read()
我添加了data = Table.read('BD_FONDECYT_1120715Py(03-2019).txt', format='ascii', guess=False)
,因为没有它,错误就不太清楚了。
我正在使用数据库并始终使用脚本来读取它。现在,我添加了一些新数据,代码显示了这个错误:
guess=False
我查看了每一个地方,更改了表格上的每个值(浮点数和2个十进制数),检查了新值,如果它们有空格或类似的东西,但无法弄清楚发生了什么。我甚至将Python版本从2.7更改为3.7并重新安装了'Traceback (most recent call last):
data = Table.read('BD_FONDECYT_1120715Py(03-2019).txt', format='ascii', guess=False)
File "C:\Python3\lib\site-packages\astropy\table\table.py", line 2550, in read
out = io_registry.read(cls, *args, **kwargs)
File "C:\Python3\lib\site-packages\astropy\io\registry.py", line 517, in read
data = reader(*args, **kwargs)
File "C:\Python3\lib\site-packages\astropy\io\ascii\connect.py", line 20, in read_asciitable
return read(filename, **kwargs)
File "C:\Python3\lib\site-packages\astropy\io\ascii\ui.py", line 390, in read
dat = fast_reader_rdr.read(table)
File "C:\Python3\lib\site-packages\astropy\io\ascii\fastbasic.py", line 128, in read
data, comments = self.engine.read(try_int, try_float, try_string)
File "astropy\io\ascii\cparser.pyx", line 385, in astropy.io.ascii.cparser.CParser.read astropy.io.ascii.core.InconsistentTableError: Number of header columns (22) inconsistent with data columns in data line 0'
和astropy
。
我该如何解决这个问题?
出现此问题是因为您的数据表具有不同数量的列,可能是因为缺少数据值。 AstroPy试图猜测表格的标题和数据部分(在numpy
调用中可以用header_start=
和data_start=
覆盖,请参阅文档中的astropy.io.ascii.read()
)。标头用于定义它希望从表中读取的列数;如果这在您的数据中途发生变化,您将获得method definition
例如,如果您有一个看起来像这样的表(使用hash作为comment / header delimiter):
InconsistentTableError
然后它会在第3行失败,因为现在有2列而不是3.你需要确保产生表格的任何东西填充'某些'以查找错误/缺失的数据和/或这不能被误认为列之间的分隔符(或者在通话中覆盖它)。这可能就是为什么它在转换为CSV后“似乎工作”了; CSV区分了原始表数据中可能不存在的常见空白值(空格)和列分隔符(逗号),从而防止了缺失值与列之间间隙之间的代码混淆。