Как преобразовать DataFrame в файл xlsx, не сохраняя его? - PullRequest
1 голос
/ 10 октября 2019

EDIT2:

Я загружаю в файл Excel как DataFrame, делаю некоторые преобразования, затем я хочу сохранить файл Excel на некотором сервере (не локально).

В настоящее время я могу решить эту проблему:

import pandas as pd
import requests

df = pd.read_excel("file.xlsx")
df = do_some_transformation(df)

# Store DataFrame locally
df.to_excel("outputfile.xlsx")

# re-read locally stored file und upload it
with open("outputfile.xlsx", "rb") as fin:
        requests.put("url/outputfile.xlsx",
                     data=fin.read(),
                     auth=auth,
                     headers={'content-type': 'application/vnd.ms-excel'})

т.е. я сохраняю преобразованный DataFrame локально, чтобы затем загрузить локальную копию на сервер. Можно ли преобразовать df напрямую в файл Excel, не сохраняя и не перезагружая его локально? Как бы мне пришлось изменить оператор arguments.put?

с подсказкой @Aryerez, я попытался

df = pd.read_excel("file.xlsx")
df = do_some_transformation(df)

writer = pd.ExcelWriter("file.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')

requests.put("url/outputfile.xlsx",
                     data=writer,
                     auth=auth,
                     headers={'content-type': 'application/vnd.ms-excel'}),

, что привело к TypeError: '_XlsxWriter' object is not iterable.

Как я могу преобразовать DataFrame pandas в файл Excel и передать его в request.put?

1 Ответ

1 голос
/ 10 октября 2019

Вы можете сделать:

writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
df.to_excel(writer, sheetName)

, который создаст объект Excel в writer с данными из df. Это не сохранит его, пока вы не сделаете:

writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...