Convert Pandas dataframe to csv string
Question:
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,Bn0,0,1n1,1,6n'
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?
Answers:
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,Bn0,0,1n1,1,6n'
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,Bn0,0,1n1,1,6n'
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,Bn0,0,1n1,1,6n'
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?
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,Bn0,0,1n1,1,6n'
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,Bn0,0,1n1,1,6n'