将Pandas数据帧转换为csv字符串

时间:2014-04-22 22:41:58

标签: python pandas

以下是我想要获得的一个例子:

我有:

import pandas as pd 
df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})

我的目标是:

',A,B\n0,0,1\n1,1,6\n'

我可以用懒惰和恐怖来实现这个目标:

df.to_csv('temp.csv') # create unnecessary file
body = open('temp.csv').read()

同样to_string()方法看起来很有希望;但是,我能想到的最好的是:

body = df.to_string()[1:].replace('  ', ',') + '\n'

这不会创建一个不必要的文件,但似乎很草率,也许不太可靠。

我错过了一个更简单的解决方案吗?

2 个答案:

答案 0 :(得分:61)

最简单的方法是不输入任何文件名,在这种情况下返回一个字符串:

>>> df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
>>> df.to_csv()
',A,B\n0,0,1\n1,1,6\n'

答案 1 :(得分:35)

In [10]: df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})

In [11]: import StringIO

In [12]: s = StringIO.StringIO()

In [13]: df.to_csv(s)

In [14]: s.getvalue()
Out[14]: ',A,B\n0,0,1\n1,1,6\n'