Python 将多行字符串转换为数据帧

Python 将多行字符串转换为数据帧,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,我有以下字符串: Hoy 1 5 14 3 0 23 我想把它变成df 我认为最好先转到list(string),然后再转到pd.Dataframe(list(string)),但是当我转到list时,返回以下输出: ['\n', 'H', 'o', 'y', '\n', '1', '\n', '5', '\n', '1', '4', '\n', '3', '\n', '0', '\n', '2', '3', '\n', '2', ',', '8', '3', '*', '\n'] 有没有其

我有以下
字符串

Hoy
1
5
14
3
0
23
我想把它变成df

我认为最好先转到
list(string)
,然后再转到
pd.Dataframe(list(string))
,但是当我转到list时,返回以下输出:

['\n', 'H', 'o', 'y', '\n', '1', '\n', '5', '\n', '1', '4', '\n', '3', '\n', '0', '\n', '2', '3', '\n', '2', ',', '8', '3', '*', '\n']
有没有其他方法可以将初始字符串转换为类似这样的df

     0
0   Hoy
1   1
2   5
3   14
4   3
5   0
6   23

使用
pd.read\u csv
,将IO缓冲区传递给它:

from up import StringIO

text = '''Hoy
1
5
14
3
0
23
'''   

pd.read_csv(StringIO(text), header=None)
     0
0  Hoy
1    1
2    5
3   14
4    3
5    0
6   23

这应该作为接受@COLDSPEED答案的理由,通过观察这个答案有多丑陋

txt = """Hoy
1
5
14
3
0
23"""

(lambda x: pd.Series(pd.to_numeric(x[1:], 'ignore'), name=x[0]))(
    txt.split('\n')
).to_frame()

   Hoy
0    1
1    5
2   14
3    3
4    0
5   23

哦,我的。。。太难看了因为
StringIO
不再在
pd.compat中,所以这项技术将在2020年起作用