我有一个ascii文件,它有3行数据,如下所示:
Timestamp: 00:47:14 SATID 13 VAL1 28 VAL2 227 SIGNAL 37 SATID 15 VAL1 22 VAL2 265 SIGNAL 30 SATID 16 VAL1 22 VAL2 265 SIGNAL 30
Timestamp: 00:48:14 SATID 13 VAL1 28 VAL2 227 SIGNAL 37 SATID 15 VAL1 22 VAL2 265 SIGNAL nan SATID 16 VAL1 22 VAL2 265 SIGNAL 30
Timestamp: 00:49:14 SATID 14 VAL1 22 VAL2 265 SIGNAL 30
(原始格式请参见图片)。original ascii data format 但是,当我尝试将其读入Python时,出现以下错误:
time,sat1,sat2,sat3,sat4 = np.loadtxt("test1.asc", usecols=(1,9,17,25,33), unpack=True, converters = {1: strpdate2num("%H:%M:%S")})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/lib/npyio.py", line 839, in loadtxt
vals = [vals[i] for i in usecols]
IndexError: list index out of range
有人知道我如何做到让Python忽略空单元格并读取每列中可用的数据吗?你知道吗
谢谢!你知道吗
由于列边缘不相交,因此可以将文件视为固定宽度的文件,并使用函数
read_fwf
。您必须准备列规范列表-指定每列的第一个和最后一个位置的元组列表。以下是规格的开头(这很无聊,但你只能做一次):在不抓取
numpy
或pandas
的情况下,让我们看看如何手动阅读这个“”首先要意识到时间戳总是在同一个地方,后面跟着
" SATID "
,所以您可以通过.split(' SATID ')[0]
来获取该信息。你知道吗然后,如果您对其余的信息执行
.split(' SATID ')
,您将获得所有必需的信息,然后您可以进一步拆分这些信息。你知道吗在代码中,这看起来像这样:
相关问题 更多 >
编程相关推荐