В Pandas есть встроенная функция для сохранения датафрейма в электронную таблицу Excel. Все очень просто:

Как записать в лист с заданным именем

В этом случае будет создан xls / xlsx файл, а данные сохранятся на лист с именем Sheet1. Если хочется сохранить на лист с заданным именем, то можно использовать конструкцию:

Как записать в один файл сразу два листа

Но что делать, если хочется записать в файл сразу два листа? Логично было бы использовать две команды df.to_excel  друг за другом, но с одним путем до файла и разными sheet_name , однако в Pandas это так не работает. Для решения этой задачи придется использовать конструкцию посложнее:


В результате будет создан файл Excel, где будет два листа с именами Лист 1 и Лист 2.

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

Если использовать предыдущий код, то текущий файл будет перезаписан и в него будет записан новый лист. Старые данные при этом, ожидаемо, будут утеряны. Выход есть, достаточно лишь добавить модификатор «a» (append):


Но что, если оставить этот код, удалить существующий файл Excel и попробовать выполнить код? Получим ошибку Файл не найден. В Python существует модификатор «a+», который создает файл, если его нет, и открывает его на редактирование, если файл существует. Но в Pandas такого модификатора не существует, поэтому мы должны выбрать модификатор для ExcelWriter в зависимости от наличия или отсутствия файла. Но это не сложно:

Как записать данные на лист Excel в Pandas, сохранив форматирование

К сожалению в Pandas, на момент написания поста, такого функционала нет. Но это можно реализовать с помощью пакета openpyxl. Вот пример такой функции:


Как работает код и пояснения смотри в видео

Если у тебя есть вопросы, что-то не получается или ты знаешь как решить задачи в посте лучше и эффективнее (такое вполне возможно) то смело пиши в комментариях к видео.