2015-05-12 86 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