2015-05-12 53 views
1

我有这个foll。输入文件:将文本文件读入熊猫数据帧失败

1988 1 1 7.88-15.57-25.00 0.00 0.81 4.02 
    1988 1 2 6.50-10.37-24.87 0.00 0.49 4.30 
    1988 1 3 6.48 -8.79-21.28 0.00 0.62 3.91 

,我读它,如下所示:

因为没有空间了一些列之间存在的
df = pandas.read_csv(inp_file, header=None, sep=' ') 

然而,他们没有得到正确读取。有没有一种方法可以指定单独的列宽?

+0

你有两个隔板,空间和几许?这个例子中有多少列? – Ivan

+3

对于固定宽度文件,您可以使用'pd.read_fwf()'。 – chrisaycock

+0

read_csv不支持自定义列的宽度,但也许您可以逐行读取文件,解析并输出到清理文件。然后pandas read_csv会起作用。 –

回答

1

OK,read_fwf作品我还以为你的3号线发生了变形,但它看起来PUKKA:

In [9]: 

t="""1988 1 1 7.88-15.57-25.00 0.00 0.81 4.02 
1988 1 2 6.50-10.37-24.87 0.00 0.49 4.30 
1988 1 3 6.48 -8.79-21.28 0.00 0.62 3.91""" 
pd.read_fwf(io.StringIO(t),header=None) 
Out[9]: 
     0 1 2     3 4  5  6 
0 1988 1 1 7.88-15.57-25.00 0 0.81 4.02 
1 1988 1 2 6.50-10.37-24.87 0 0.49 4.30 
2 1988 1 3 6.48 -8.79-21.28 0 0.62 3.91