我收到了一个不带分隔符的数据文件 - 数据如下所示:
$ head usa_00002.dat
20120500000001000000200010001000000200021111147870057729
20120500000001000000200010002000000160022101010000000000
20120500000001000000200010003000000130002010160000999999
20120500000001000000200010004000000200001010120000999999
20120500000002000000240010001000000240001111146870075959
我有一个代码本文件,它解释了数据的实际设置方式(YEAR 列 1–4、DATANUM 列 5–6
等)
将这些数据导入 Pandas 的最佳方式是什么?有没有一种标准方法可以使用 read_table 或类似的函数来直接读取此文件?我是否应该编写一个脚本在所有分栏符所在的位置插入逗号,然后将其作为 CSV 读取? (我只想做后者,但我也有兴趣更好地使用 Pandas,所以如果有一种开箱即用的方法,我想知道它。)
最佳答案
您可以使用pandas.io.parsers.read_fwf()
功能:
from cStringIO import StringIO
s = """20120500000001000000200010001000000200021111147870057729
20120500000001000000200010002000000160022101010000000000
20120500000001000000200010003000000130002010160000999999
20120500000001000000200010004000000200001010120000999999
20120500000002000000240010001000000240001111146870075959"""
colspecs = [(0, 4), (5, 6), ...]
df = pd.read_fwf(StringIO(s), colspecs=colspecs, header=None)
关于python - 使用 Pandas 读取无分隔符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29278903/