我有傻瓜。输入文件:

  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=' ')


但是,由于某些列之间没有空格,因此无法正确读取它们。有没有一种方法可以指定各个列的宽度?

最佳答案

好的,read_fwf起作用了,我以为您的第三行格式不正确,但是看起来很不客气:

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

08-24 17:29