【发布时间】:2017-08-29 04:42:31
【问题描述】:
我有一个包含 3 行数据的 ascii 文件,如下所示:
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 忽略空单元格并读取每列中可用的任何数据?
谢谢!
【问题讨论】:
-
文件中的列具有固定宽度。您可能应该使用 Pandas 中的
pd.read_fwf()。 -
嗨,DYZ。不幸的是,这些列的宽度有时会略有不同...
-
相邻列中的值是否重叠?如果不是(如您的示例中所示),您仍然可以将它们视为固定宽度。
-
DYZ,感谢您的提示。 pd.read_fwf() 的使用你有没有一个例子说明我如何使用这个模块?谢谢!顺便说一句,没有一列重叠,所以我认为可以使用您建议的方法...
标签: python python-3.x csv numpy ascii