python panda read_table不存在

时间:2015-04-08 05:01:16

标签: python string pandas dataframe

我有一个数据帧的字符串。

s='185662748,9359839,155872098,13.99,72\r\n185662748,9359839,155872098,15.58,75\r\n185662748,9359839,155872098,126.99,94\r\n'

我使用了这个df=pd.read_table(s,sep=',',lineterminator='\n',header=header).

但它让我回头

  

" IOError:文件185662748,9359839,155872098,13.99,72   ....不存在"

我想将sting转换为尽可能直接输出如下:

a     b          c       d          e

0  185662748  9359839  155872098   13.99  72

1  185662748  9359839  155872098   15.58  75

2  185662748  9359839  155872098  126.99  94

2 个答案:

答案 0 :(得分:3)

read_table要求文件名或文件类对象。如果传递一个字符串,它希望它是一个文件名。您可以将一个字符串包装在StringIO对象中,使其行为类似于文件,允许您 直接使用字符串:

import pandas as pd
from StringIO import StringIO

s='185662748,9359839,155872098,13.99,72\r\n185662748,9359839,155872098,15.58,75\r\n185662748,9359839,155872098,126.99,94\r\n'

pd.read_table(StringIO(s), sep=',', header=None)
Out[10]: 
           0        1          2       3   4
0  185662748  9359839  155872098   13.99  72
1  185662748  9359839  155872098   15.58  75
2  185662748  9359839  155872098  126.99  94

答案 1 :(得分:0)

是。快速摘要:

1)导入StringIO是必要的。

2)“header”需要int,以声明列位置

3)“names”声明列名。

来源2),3):

http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.io.parsers.read_table.html