我有一个数据帧的字符串。
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
答案 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