Преобразование Pandas dataframe в строку csv

Вот пример того, что я пытаюсь получить:

У меня есть:

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'

Это не создает ненужный файл, но кажется неаккуратным и, возможно, не очень надежным.

Я пропустил более простое решение?

Ответы

Ответ 1

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'

Ответ 2

Самый простой способ - просто не вводить имя файла, в этом случае возвращается строка:

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