Панды: написать фрейм данных в файл Excel * объект * (не файл)? - PullRequest
2 голосов
/ 10 июля 2019

У меня есть фрейм данных, который я хочу преобразовать в файл Excel и вернуть его, используя HTTP.Метод to_excel Dataframe принимает либо путь, либо ExcelWriter, который, в свою очередь, ссылается на путь.

Есть ли способ преобразовать фрейм данных в объект файла, не записывая его на диск

1 Ответ

0 голосов
/ 10 июля 2019

Это можно сделать с помощью объекта BytesIO в стандартной библиотеке:

import pandas
from io import BytesIO

# Create Random Data for example
cols = ["col1", "col2"]
df = pandas.DataFrame.from_records([{k: 0.0 for k in cols} for _ in range(25)])

# Create an in memory binary file object, and write the dataframe to it.
in_memory_fp = BytesIO()
df.to_excel(in_memory_fp)

# Write the file out to disk to demonstrate that it worked.
in_memory_fp.seek(0,0)
with open("my_file.xlsx", 'wb') as f:
    f.write(in_memory_fp.read())

В приведенном выше примере я записал объект в файл, чтобы вы могли убедиться, что он работает. Если вы хотите просто вернуть необработанные двоичные данные в память, все что вам нужно:

in_memory_fp.seek(0,0)
binary_xl = in_memory_fp.read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...