Convert Pandas dataframe to csv string
Here is an example of what I am trying to get:
I have:
import pandas as pd
df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
My goal is:
',A,B\n0,0,1\n1,1,6\n'
I can achieve this with lazy and horrible:
df.to_csv('temp.csv') # create unnecessary file
body = open('temp.csv').read()
Also to_string()
methods looks very promising; however, the best I can come up with is this:
body = df.to_string()[1:].replace(' ', ',') + '\n'
This does not create an unnecessary file, but seems sloppy and perhaps not very reliable.
Am I missing a simpler solution?
The simplest way is just to not input any filename, in this case a string is returned:
>>> df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
>>> df.to_csv()
',A,B\n0,0,1\n1,1,6\n'
In [10]: df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
In [11]: import io
In [12]: s = io.StringIO()
In [13]: df.to_csv(s)
In [14]: s.getvalue()
Out[14]: ',A,B\n0,0,1\n1,1,6\n'