使用熊猫读取定界文件 - python

我收到了一个无界数据文件,数据看起来像这样:

$ head usa_00002.dat
20120500000001000000200010001000000200021111147870057729
20120500000001000000200010002000000160022101010000000000
20120500000001000000200010003000000130002010160000999999
20120500000001000000200010004000000200001010120000999999
20120500000002000000240010001000000240001111146870075959

我有一个密码本文件,解释了如何实际设置数据(YEAR columns 1–4, DATANUM columns 5–6等)

对我来说,将这些数据导入Pandas的最佳方法是什么?我可以使用read_table或类似功能直接读取此文件的标准方法吗?我是否应该编写脚本以在所有分行符所在的位置插入逗号,然后以CSV格式读取? (我只是愿意做后者,但我也想与Pandas一起变得更好,所以如果有一种我想知道的开箱即用的方式。)

python大神给出的解决方案

您可以为此使用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)