Spec-Zone.ru › pandas 1

pandas.ExcelWriter

classpandas.ExcelWriter(path, engine=None, date_format=None, datetime_format=None, mode='w', storage_options=None, if_sheet_exists=None, engine_kwargs=None, **kwargs)[source]

Класс для записи объектов DataFrame в электронные таблицы Excel.

По умолчанию используется:

  • xlwt для файлов xls

  • xlsxwriter для файлов xlsx, если xlsxwriter установлен, в противном случае openpyxl

  • odswriter для файлов ods

См. DataFrame.to_excel для типичного использования.

Писатель должен использоваться как контекстный менеджер. В противном случае вызовите close(), чтобы сохранить и закрыть все открытые дескрипторы файлов.

Параметры
path:str или typing.BinaryIO

Путь к файлу xls, xlsx или ods.

engine:str (необязательно)

Используемый движок для записи. Если None, по умолчанию io.excel.<extension>.writer. ПРИМЕЧАНИЕ: может быть передан только в качестве ключевого аргумента.

Устаревшее начиная с версии 1.2.0: Поскольку пакет xlwt больше не поддерживается, движок xlwt будет удалён в будущих версиях pandas.

date_format:str, по умолчанию None

Строка формата для дат, записываемых в файлы Excel (например, ‘ГГГГ-ММ-ДД’).

datetime_format:str, по умолчанию None

Строка формата для объектов datetime, записываемых в файлы Excel. (например, ‘ГГГГ-ММ-ДД ЧЧ:ММ:СС’).

mode:{‘w’, ‘a’}, по умолчанию ‘w’

Режим файла (запись или добавление). Добавление не работает с URL fsspec.

storage_options:dict, необязательно

Дополнительные параметры, подходящие для определенного подключения к хранилищу, например, хост, порт, имя пользователя, пароль и т. д. Для URL HTTP(S) пары ключ-значение передаются в urllib.request.Request в качестве параметров заголовка. Для других URL (например, начинающихся с “s3://” и “gcs://”) пары ключ-значение передаются в fsspec.open. Подробности см. в fsspec и urllib, а более подробные примеры параметров хранилища см. здесь.

Введено в версии 1.2.0.

if_sheet_exists:{‘error’, ‘new’, ‘replace’, ‘overlay’}, по умолчанию ‘error’

Как вести себя при попытке записи в лист, который уже существует (только режим добавления).

  • error: вызывается ValueError.

  • new: Создаётся новый лист с именем, определяемым движком.

  • replace: Содержимое листа удаляется перед записью в него.

  • overlay: Содержимое записывается в существующий лист без удаления старого содержимого.

Введено в версии 1.3.0.

Изменено в версии 1.4.0: Добавлен overlay вариант

engine_kwargs:dict, необязательно

Ключевые аргументы, передаваемые в движок. Они будут переданы в следующие функции соответствующих движков:

  • xlsxwriter: xlsxwriter.Workbook(file, **engine_kwargs)

  • openpyxl (режим записи): openpyxl.Workbook(**engine_kwargs)

  • openpyxl (режим добавления): openpyxl.load_workbook(file, **engine_kwargs)

  • odswriter: odf.opendocument.OpenDocumentSpreadsheet(**engine_kwargs)

Введено в версии 1.3.0.

**kwargs:dict, необязательно

Ключевые аргументы, передаваемые в движок.

Устаревшее начиная с версии 1.3.0: Используйте engine_kwargs вместо этого.

Примечания

Для совместимости с пишущими модулями CSV ExcelWriter сериализует списки и словари в строки перед записью.

Примеры

Типовое использование:

>>> df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"])  
>>> with pd.ExcelWriter("path_to_file.xlsx") as writer:
...     df.to_excel(writer)  

Для записи в отдельные листы в одном файле:

>>> df1 = pd.DataFrame([["AAA", "BBB"]], columns=["Spam", "Egg"])  
>>> df2 = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"])  
>>> with pd.ExcelWriter("path_to_file.xlsx") as writer:
...     df1.to_excel(writer, sheet_name="Sheet1")  
...     df2.to_excel(writer, sheet_name="Sheet2")  

Можно задать формат даты или формата datetime:

>>> from datetime import date, datetime  
>>> df = pd.DataFrame(
...     [
...         [date(2014, 1, 31), date(1999, 9, 24)],
...         [datetime(1998, 5, 26, 23, 33, 4), datetime(2014, 2, 28, 13, 5, 13)],
...     ],
...     index=["Date", "Datetime"],
...     columns=["X", "Y"],
... )  
>>> with pd.ExcelWriter(
...     "path_to_file.xlsx",
...     date_format="YYYY-MM-DD",
...     datetime_format="YYYY-MM-DD HH:MM:SS"
... ) as writer:
...     df.to_excel(writer)  

Также можно добавить в существующий файл Excel:

>>> with pd.ExcelWriter("path_to_file.xlsx", mode="a", engine="openpyxl") as writer:
...     df.to_excel(writer, sheet_name="Sheet3")  

Здесь параметр if_sheet_exists может быть установлен на replace, если лист уже существует:

>>> with ExcelWriter(
...     "path_to_file.xlsx",
...     mode="a",
...     engine="openpyxl",
...     if_sheet_exists="replace",
... ) as writer:
...     df.to_excel(writer, sheet_name="Sheet1")  

Можно также записать несколько DataFrame в один лист. Обратите внимание, что параметр if_sheet_exists должен быть установлен на overlay.

>>> with ExcelWriter("path_to_file.xlsx",
...     mode="a",
...     engine="openpyxl",
...     if_sheet_exists="overlay",
... ) as writer:
...     df1.to_excel(writer, sheet_name="Sheet1")
...     df2.to_excel(writer, sheet_name="Sheet1", startcol=3)  

Можно хранить файл Excel в оперативной памяти:

>>> import io
>>> df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"])
>>> buffer = io.BytesIO()
>>> with pd.ExcelWriter(buffer) as writer:
...     df.to_excel(writer)

Можно упаковать файл Excel в архив zip:

>>> import zipfile  
>>> df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"])  
>>> with zipfile.ZipFile("path_to_file.zip", "w") as zf:
...     with zf.open("filename.xlsx", "w") as buffer:
...         with pd.ExcelWriter(buffer) as writer:
...             df.to_excel(writer)  

Можно указать дополнительные аргументы для базового движка:

>>> with pd.ExcelWriter(
...     "path_to_file.xlsx",
...     engine="xlsxwriter",
...     engine_kwargs={"options": {"nan_inf_to_errors": True}}
... ) as writer:
...     df.to_excel(writer)  

В режиме добавления engine_kwargs передаются в load_workbook openpyxl’s:

>>> with pd.ExcelWriter(
...     "path_to_file.xlsx",
...     engine="openpyxl",
...     mode="a",
...     engine_kwargs={"keep_vba": True}
... ) as writer:
...     df.to_excel(writer, sheet_name="Sheet2")  

Атрибуты

book

Экземпляр книги.

cur_sheet

(УСТАРЕВШЕ) Текущий лист для записи.

date_format

Строка формата для дат, записываемых в файлы Excel (например,

datetime_format

Строка формата для дат, записываемых в файлы Excel (например,

engine

Имя движка.

handles

(УСТАРЕВШЕ) Дескрипторы листов Excel.

if_sheet_exists

Как вести себя при записи в лист, который уже существует в режиме добавления.

path

(УСТАРЕВШЕ) Путь к файлу Excel.

sheets

Отображение имён листов на объекты листов.

supported_extensions

Поддерживаемые расширения формата writer.

Методы

check_extension(ext)

Проверяет расширение пути по отношению к поддерживаемым расширениям Writer.

close()

синоним для save, чтобы сделать его более похожим на файл

save()

(УСТАРЕВШЕ) Сохранение книги в файл.

write_cells(cells[, sheet_name, startrow, ...])

(УСТАРЕВШЕ) Запись заданных отформатированных ячеек в лист Excel

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.ExcelWriter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API