【发布时间】:2019-05-16 13:31:47
【问题描述】:
使用pd.read_csv('file.dat', sep='\s+')或pd.read_fwf('file.dat', widths=[7, ..])方法在pandas中读取一个固定宽度的.dat文件并不是很复杂。但是在文件中也给出了这样的格式字符串:
Format = (i7,1x,i7,1x,i2,1x,i2,1x,i2,1x,f5.1,1x,i4,1x,3i,1x,f4.1,1x,i1,1x,f4.1,1x,i3,1x,i4,1x,i4,1x,i3,1x,i4,2x,i1)
查看列内容,我假设字符表示数据类型(i->int,f->float,x->seperator),数字显然是列的宽度。这是标准符号吗?是否有一种更 Python 的方式来读取数据文件,只需传递此格式字符串并使脚本针对数据文件中的格式更改进行保存?
我注意到 read_fwf() 函数的格式参数,但它需要一个对 (int, int) 的列表,而不是给定的格式字符串的类型。 数据文件的第一行:
对列表 (int, int)
【问题讨论】: