如何从python中的csv格式字符串中获取DataFrame格式

时间:2018-05-01 05:30:49

标签: python python-3.x pandas csv dataframe

让我们说我有csv格式字符串a =' 1,2,3 \ r4,5,6 \ r7,8,9 \ r'在python中。 我怎样才能获得" 3行x 3列" DataFrame [[1,2,3],[4,5,6],[7,8,9]]来自变量a?

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用io模块从字符串创建in-memory text stream。假设你有一个实际上是csv格式的字符串,那么:

In [1]: import io

In [2]: import pandas as pd

In [3]: s = '1,2,3\n4,5,6\n7,8,9'

In [4]: print(s)
1,2,3
4,5,6
7,8,9

使用io.StringIO就像使用文件对象一样:

In [5]: pd.read_csv(io.StringIO(s))
Out[5]:
   1  2  3
0  4  5  6
1  7  8  9

In [6]: pd.read_csv(io.StringIO(s), header=None)
Out[6]:
   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9

答案 1 :(得分:1)

试试这个:

temp = [i.split(',') for i in a.split('/r')]
result = [list(map(int, i)) for i in temp[:-1]]

答案 2 :(得分:0)

替代方案可以是:

输入:

a='1,2,3\n4,5,6\n7,8,9'
print a

1,2,3
4,5,6
7,8,9

转换为列表,然后转换为df:

import re
import pandas as pd
my_list = re.split("[,\n]", a)
df = pd.DataFrame(np.array(my_list).reshape(3,3), columns = list("abc"))
print df

输出:

   a  b  c
0  1  2  3
1  4  5  6
2  7  8  9