与列不同的InconsistentTableError行错误的表.read.read()

问题描述 投票:1回答:1

我正在尝试使用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

我该如何解决这个问题?

python python-2.7 python-3.7 astropy
1个回答
0
投票

出现此问题是因为您的数据表具有不同数量的列,可能是因为缺少数据值。 AstroPy试图猜测表格的标题和数据部分(在numpy调用中可以用header_start=data_start=覆盖,请参阅文档中的astropy.io.ascii.read())。标头用于定义它希望从表中读取的列数;如果这在您的数据中途发生变化,您将获得method definition

例如,如果您有一个看起来像这样的表(使用hash作为comment / header delimiter):

InconsistentTableError

然后它会在第3行失败,因为现在有2列而不是3.你需要确保产生表格的任何东西填充'某些'以查找错误/缺失的数据和/或这不能被误认为列之间的分隔符(或者在通话中覆盖它)。这可能就是为什么它在转换为CSV后“似乎工作”了; CSV区分了原始表数据中可能不存在的常见空白值(空格)和列分隔符(逗号),从而防止了缺失值与列之间间隙之间的代码混淆。

© www.soinside.com 2019 - 2024. All rights reserved.