Ответ 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'
Вот пример того, что я пытаюсь получить:
У меня есть:
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'
Это не создает ненужный файл, но кажется неаккуратным и, возможно, не очень надежным.
Я пропустил более простое решение?
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'
Самый простой способ - просто не вводить имя файла, в этом случае возвращается строка:
>>> df = pd.DataFrame({'A' : [0, 1], 'B' : [1, 6]})
>>> df.to_csv()
',A,B\n0,0,1\n1,1,6\n'