我有以下string
:
Hoy
1
5
14
3
0
23
我想把它变成df。
我认为转向list(string)
然后pd.Dataframe(list(string))
是个好主意,但是当我转到列表时会返回以下输出:
['\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
答案 0 :(得分:4)
使用pd.read_csv
,将IO缓冲区传递给它:
text = '''Hoy
1
5
14
3
0
23
'''
pd.read_csv(pd.compat.StringIO(text), header=None)
0
0 Hoy
1 1
2 5
3 14
4 3
5 0
6 23
答案 1 :(得分:2)
这可以作为接受@ 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