Начало работы с Python в Excel
Python в Excel в настоящее время находится в предварительной версии и может быть изменен в зависимости от отзывов. Чтобы использовать эту функцию, присоединитесь к программе предварительной оценки Microsoft 365 и выберите уровень предварительной оценки канала бета-версии .
У вас нет доступа к программе предварительной оценки? Зарегистрируйтесь с помощью учетной записи Майкрософт, рабочей или учебной учетной записи, чтобы получать уведомления о будущей доступности Python в Excel.
Python в Excel постепенно развертывается в Excel для клиентов Windows, использующих бета-канал. В настоящее время эта функция недоступна на других платформах.
Если у вас возникли проблемы с Python в Excel, сообщите о них, выбрав Справка > отзывов в Excel.
Не знакомы с Python в Excel? Начните с введение в Python в Excel.
Начало использования Python
Чтобы начать использовать Python в Excel, выберите ячейку и на вкладке Формулы выберите Вставить Python. Это сообщает Excel о том, что вы хотите написать формулу Python в выбранной ячейке.
Или используйте функцию =PY в ячейке, чтобы включить Python. Введя в ячейку =PY, выберите PY в меню автозаполнения функции со стрелкой вниз и клавишами TAB или добавьте в функцию открываемую скобку: =PY(. Теперь можно ввести код Python непосредственно в ячейку. На следующем снимке экрана показано меню Автозаполнения с выбранной функцией PY.

После включения Python в ячейке в этой ячейке отображается зеленый значок PY . При выборе ячейки Python в строке формул отображается тот же значок PY. Пример см. на следующем снимку экрана.

Объединение python с ячейками и диапазонами Excel
Чтобы ссылаться на объекты Excel в ячейке Python, убедитесь, что ячейка Python находится в режиме правки, а затем выберите ячейку или диапазон, которые нужно включить в формулу Python. При этом ячейка Python автоматически заполняется адресом выбранной ячейки или диапазона.
Совет: Используйте сочетание клавиш F2 для переключения между режимом ввод и режим правки в ячейках Python. Переключение в режим правки позволяет изменить формулу Python, а переключение в режим Ввод позволяет выбрать дополнительные ячейки или диапазоны с помощью клавиатуры.
Python в Excel использует пользовательскую функцию Python xl() для взаимодействия между Excel и Python. Функция xl() принимает такие объекты Excel, как диапазоны, таблицы, запросы и имена.
Вы также можете напрямую вводить ссылки в ячейку Python с помощью функции xl() . Например, для ссылки на ячейку A1 используйте xl(«A1») , а для диапазона B1:C4 — xl(«B1:C4») . Для таблицы с заголовками MyTable используйте xl(«MyTable[#All]», headers=True) . Описатель [#All] гарантирует, что вся таблица анализируется в формуле Python, а headers=True обеспечивает правильную обработку заголовков таблицы. Дополнительные сведения об описателях, таких как [#All], см. в статье Использование структурированных ссылок с таблицами Excel.
На следующем рисунке показано вычисление Python в Excel с добавлением значений ячеек A1 и B1 с результатом Python, возвращенным в ячейку C1.

Строка формул
Используйте строку формул для редактирования, подобного коду, например для создания новых строк с помощью клавиши ВВОД. Разверните строку формул, используя значок стрелки вниз, чтобы просмотреть несколько строк кода одновременно. Вы также можете использовать сочетание клавиш CTRL+SHIFT+U , чтобы развернуть строку формул. На следующих снимках экрана показана строка формул до и после ее развертывания для просмотра нескольких строк кода Python.

Перед развертыванием строки формул:

После развертывания строки формул:
Типы выходных данных
Используйте меню выходных данных Python в строке формул, чтобы управлять тем, как возвращаются вычисления Python. Возвращает вычисления в виде объектов Python или преобразует вычисления в значения Excel и выводит их непосредственно в ячейку. На следующем снимку экрана показана формула Python, возвращаемая в виде значения Excel.
Совет: Вы также можете использовать контекстное меню, чтобы изменить тип выходных данных Python. Откройте контекстное меню, перейдите в раздел Вывод Python, а затем выберите нужный тип вывода.

На следующем снимке экрана показана та же формула Python, что и на предыдущем снимке экрана, теперь возвращенная в качестве объекта Python. Когда формула возвращается в виде объекта Python, в ячейке отображается значок карта.
Примечание: Результаты формул, возвращаемые значениям Excel, превратятся в их ближайший эквивалент Excel. Если вы планируете повторно использовать результат в будущих вычислениях Python, рекомендуется вернуть результат в виде объекта Python. Возврат результата в виде значений Excel позволяет запускать аналитику Excel, например диаграммы Excel, формулы и условное форматирование, для значения.

Объект Python содержит дополнительные сведения в ячейке. Чтобы просмотреть дополнительные сведения, откройте карта, щелкнув значок карта. Сведения, отображаемые на карта, являются предварительным просмотром объекта, который полезен при обработке больших объектов.
Python в Excel может возвращать многие типы данных в виде объектов Python. Полезным типом данных Python в Excel является объект DataFrame. Дополнительные сведения о кадрах данных Python см. в статье Python в кадрах данных Excel.
Внешние данные
Чтобы импортировать внешние данные, используйте функцию Получить преобразование & в Excel. Преобразование get & использует Power Query для импорта внешних данных. Все данные, обрабатываемые с помощью Python в Excel, должны поступать с листа или через Power Query. Дополнительные сведения см. в статье Использование данных Power Query с Python в Excel.
Важно: Для защиты безопасности распространенные функции внешних данных в Python, такие как pandas.read_csv и pandas.read_excel, несовместимы с Python в Excel. Дополнительные сведения см . в статье Безопасность данных и Python в Excel.
Порядок вычислений
Традиционные операторы Python вычисляют сверху вниз. В ячейке Python в Excel операторы Python выполняют то же самое — вычисляют сверху вниз. Но на листе Python в Excel ячейки Python вычисляют в порядке крупных строк. Вычисления ячеек выполняются по строке (от столбца A до столбца XFD), а затем по каждой следующей строке на листе.
Инструкции Python упорядочены, поэтому каждая инструкция Python имеет неявную зависимость от инструкции Python, которая непосредственно предшествует ей в порядке вычисления.
Порядок вычислений важен при определении переменных на листе и ссылки на них, так как необходимо определить переменные, прежде чем можно будет ссылаться на них.
Важно: Порядок вычисления основных строк также применяется на всех листах в книге и основан на порядке листов в книге. Если вы используете несколько листов для анализа данных с помощью Python в Excel, обязательно включите данные и все переменные, хранящее данные в ячейках и листах перед ячейками и листами, которые анализируют эти данные.
Пересчета
При изменении зависимого значения ячейки Python все формулы Python пересчитываются последовательно. Чтобы приостановить пересчеты Python и повысить производительность, используйте режим частичного вычисления или ручного вычисления . Эти режимы позволяют активировать вычисление, когда вы будете готовы. Чтобы изменить этот параметр, перейдите на ленту и выберите Формулы, а затем откройте раздел Параметры вычисления. Затем выберите нужный режим вычисления. Режимы частичного вычисления и вычисления вручную приостанавливают автоматический пересчет как для Python, так и для таблиц данных.
Отключение автоматического пересчета в книге во время разработки Python может повысить производительность и скорость вычисления отдельных ячеек Python. Однако необходимо вручную пересчитать книгу, чтобы обеспечить точность в каждой ячейке Python. Существует три способа пересчета книги вручную в режиме частичного вычисления или ручного вычисления .
- Используйте сочетание клавиш F9.
- Перейдите к разделу Формулы >вычислить сейчас на ленте.
- Перейдите в ячейку с устаревшим значением, отображаемым с форматированием зачеркиванием, и выберите символ ошибки рядом с этой ячейкой. Затем в меню выберите Вычислить сейчас.
Ошибки
Вычисления Python в Excel могут возвращать такие ошибки, как #PYTHON!, #BUSY!и #CONNECT! в ячейки Python. Дополнительные сведения см. в статье Устранение ошибок Python в Excel.
Статьи по теме
- Общие сведения о Python в Excel
- Введение в Python — обучение | Microsoft Learn
- Устранение ошибок Python в Excel
- Безопасность данных и Python в Excel
- Python в кадрах данных Excel
- Создание графиков и диаграмм Python в Excel
- Использование данных Power Query с Python в Excel
Как записать excel файл в нормальном виде на python?
Как записать excel файл на python в нормальном для просмотра виде? Чтобы как минимум можно было настроить ширину столбцов и перенос содержимого в случае если оно не вмещается. В идеале конечно с возможностью стилизации и авто-форматированием ширины по содержимому, но просмотрев все возможные варианты в интернете, я поняла, что это что-то из мира фантастики, однозначных ответов нету, а отдельные предложенные фрагменты кода громоздкие и к тому же у меня они не работают. Также в основном все примеры с pandas , но как сделать вышеперечисленные пункты на этом самом pandas я не нашла, задала отдельный вопрос со всеми примерами, что я пробовала, уже более 2-х недель ответа нету. Поэтому я хочу спросить, возможно есть альтернативы, где это реально сделать? Как именно это сделать мне не принципиально. Это не дубликат вышеуказанного вопроса, он об конкретной проблеме с pandas, а данный вопрос обобщённый, о записи в excel файл на python.
Отслеживать
задан 7 ноя 2021 в 23:08
51 3 3 серебряных знака 15 15 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Я использую openxlsx, возможно вам также подойдет это решение, например:
from openpyxl.reader.excel import load_workbook from openpyxl.styles import Font from openpyxl.styles.fills import PatternFill # Загружаем документ book = load_workbook('foo.xlsx') # Определяем рабочий лист ws = book.worksheets[0] # Определяем необходимую ячейку на листе _cell = ws['C1'] # Задаем стиль для ячейки _cell.font = Font(size=10, underline='single', color='FFFFFF', bold=True, italic=True) _cell.value = 'hello world' # Задаем цвет фона _cell.fill = PatternFill(bgColor="FFC7CE", fill_type = "solid") # Указываем ширину для колонки ws.column_dimensions["C"].width = 60.0 # Сохраняем документ book.save('foo.xlsx')
Работа с Excel-файлами в Pandas — Python: Pandas
Для работы с табличными данными часто используют продукт Microsoft Excel. В таблицы Excel помещают как списки покупок, так и отчетности компаний. Благодаря распространенности данного формата разработчики создали инструменты для атоматизации обработки данных.
Pandas является средством работы с табличными данными и умеет работать с файлами формата Excel-таблиц: .xls и .xlsx. И каждый разработчик должен уметь работать с такими форматами наравне с текстовыми файлами и файлами формата json и html.
В этом уроке мы познакомимся с основными методами библиотеки Pandas для работы с табличными данными в формате Microsoft Excel: .xls и .xlsx. Мы научимся их читать и записывать. Также мы разберем работу с файлами, в которых есть несколько листов, а также форматированию данных при записи.
Обработка Excel файлов в Python
Среди форматов файлов Excel наиболее популярными являются:
- .xls — использовался в версиях Microsoft Excel до 2007
- .xlsx — используется во всех версиях после 2007
Для работы с обоими типами в Python есть ряд открытых библиотек:
В библиотеке Pandas не реализован свой функционал работы с Excel-файлами, но есть единый интерфейс для работы с каждой из указанных выше библиотек.
Чтобы использовать этот функционал, нужно установить указанные библиотеки в окружение, в котором установлена библиотека Pandas. Библиотеки не являются взаимозаменяемыми и дополняют друг друга — лучше установить их все.
Чтение таблиц из Excel файлов
Чтобы читать файлы в Pandas, используется метод read_excel() . Ему на вход подается путь к читаемому файлу:
import pandas as pd df_orders = pd.read_excel('data_read/Shop_orders_one_week.xlsx') print(df_orders.head()) # => weekday shop_1 shop_2 shop_3 shop_4 # 0 mon 7 1 7 8 # 1 tue 4 2 4 5 # 2 wed 3 5 2 3 # 3 thu 8 12 8 7 # 4 fri 15 11 13 9 # 5 sat 21 18 17 21 # 6 sun 25 16 25 17
В примере выше прочитан файл продаж четырех магазинов за неделю и размещен в объекте DataFrame . Pandas по умолчанию добавил столбец индексов — последовательность целых чисел от 0 до 6.
Чтобы указать, какой из столбцов является столбцом индексов, необходимо указать его номер в параметре index_col . В нашем случае это первый столбец, в котором указаны дни недели:
df_orders = pd.read_excel('data_read/Shop_orders_one_week.xlsx', index_col=0) print(df_orders.head()) # => shop_1 shop_2 shop_3 shop_4 # weekday # mon 7 1 7 8 # tue 4 2 4 5 # wed 3 5 2 3 # thu 8 12 8 7 # fri 15 11 13 9 # sat 21 18 17 21 # sun 25 16 25 17
Если перед таблицей некоторые строки содержали записи, то попытка прочтения не приведет к ожидаемому результату. Pandas будет стараться положить данные в строках до таблицы в качестве индексов столбцов:
df_orders = pd.read_excel('data_read/Shop_orders_one_week_with_head.xlsx') print(df_orders.head()) # => Orders by shop Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 # 0 NaN NaN NaN NaN NaN # 1 weekday shop_1 shop_2 shop_3 shop_4 # 2 mon 7 1 7 8 # 3 tue 4 2 4 5 # 4 wed 3 5 2 3
Для корректного прочтения необходимо пропустить некоторое количество строк при прочтении. Для этого нужно использовать параметр skiprows и указать количество пропускаемых строк:
df_orders = pd.read_excel('data_read/Shop_orders_one_week_with_head.xlsx', skiprows=2) print(df_orders.head()) # => weekday shop_1 shop_2 shop_3 shop_4 # 0 mon 7 1 7 8 # 1 tue 4 2 4 5 # 2 wed 3 5 2 3 # 3 thu 8 12 8 7 # 4 fri 15 11 13 9
Итоговый вариант корректного чтения, где пропущены две строки и использован один столбец в качестве столбца индексов, выглядит следующим образом:
df_orders = pd.read_excel('data_read/Shop_orders_one_week_with_head.xls', skiprows=2, index_col=0) print(df_orders.head()) # => shop_1 shop_2 shop_3 shop_4 # weekday # mon 7 1 7 8 # tue 4 2 4 5 # wed 3 5 2 3 # thu 8 12 8 7 # fri 15 11 13 9
Запись таблиц в Excel файл
Также в Excel-файл можно записывать результаты работы программы. Эту задачу можно разделить на два типа по сложности используемого синтаксиса:
- Быстрая запись на один лист — записывается одна таблица, которая будет размещена на одном листе файла Excel
- Создание файла с несколькими листами — если результаты работы программы располагаются в нескольких итоговых таблицах, то для формирования единого файла Excel с несколькими листами потребуется применить определенные правила создания
Быстрая запись на один лист
В качестве результатов работы программы используем среднее по магазинам за неделю:
df_orders_mean = pd.DataFrame(df_orders.mean()).T.round(1) df_orders_mean.index = ['mean'] print(df_orders_mean) # => shop_1 shop_2 shop_3 shop_4 # mean 11.9 9.3 10.9 10.0
Сформируем итоговую таблицу на основе исходной и добавим аналитические результаты:
df_analitic_results = pd.concat([ df_orders, df_orders_mean ]) print(df_analitic_results) # => shop_1 shop_2 shop_3 shop_4 # mon 7.0 1.0 7.0 8.0 # tue 4.0 2.0 4.0 5.0 # wed 3.0 5.0 2.0 3.0 # thu 8.0 12.0 8.0 7.0 # fri 15.0 11.0 13.0 9.0 # sat 21.0 18.0 17.0 21.0 # sun 25.0 16.0 25.0 17.0 # mean 11.9 9.3 10.9 10.0
Чтобы быстро записать данную таблицу, достаточно воспользоваться методом to_excel() . Формат файла .xls или .xlsx необходимо указать в расширении файла. Pandas автоматически определит, какой библиотекой воспользоваться для конкретного формата:
df_analitic_results.to_excel('data_read/Shop_orders_one_week_analitics.xlsx') df_analitic_results.to_excel('data_read/Shop_orders_one_week_analitics.xls')
Создание файла с несколькими листами
Чтобы задать имя листа, на котором располагается таблица, необходимо указать его в параметре sheet_name . В данном примере получится лист Total:
path_for_analitic_results = 'data_read/Shop_orders_one_week_analitics.xlsx' df_analitic_results.to_excel( path_for_analitic_results, sheet_name='Total' )
Попробуем добавить к сформированному файлу лист итогов только для первого магазина:
df_analitic_results[['shop_1']].to_excel( path_for_analitic_results, sheet_name='shop_1', )
Все выполнено без ошибок, но в итоговом файле листа Total нет. Чтобы перезаписать файл и удалить предыдущий, вызовем функцию to_excel() .
Для корректной записи или дозаписи нужно использовать следующую конструкцию. В одном файле запишем итоговую таблицу на один лист, а для каждого магазина создадим отдельный лист только с его итогами:
with pd.ExcelWriter( path_for_analitic_results, engine="xlsxwriter", mode='w') as excel_writer: # Add total df df_analitic_results.to_excel(excel_writer, sheet_name='Total') # Add all shop df results for shop_name in df_analitic_results.columns.to_list(): df_analitic_results[[shop_name]].to_excel(excel_writer, sheet_name=shop_name)
В коде выше создается экземпляр класса ExcelWriter на «движке» библиотеки xlsxwriter . Далее мы используем инициализированный экземпляр excel_writer в качестве первого параметра метода to_excel() . Конструкция with. as. позволяет безопасно работать с потоком данных и закрыть файл, даже когда возникают ошибки записи.
Чтение таблиц из Excel файлов с несколькими листами
Чтобы прочитать файл с несколькими листами, не хватит метода read_excel() , поскольку будет прочитан только первый лист из файла:
df_analitic_results_from_file = pd.read_excel(path_for_analitic_results, index_col=0) print(df_analitic_results_from_file) # => shop_1 shop_2 shop_3 shop_4 # mon 7.0 1.0 7.0 8 # tue 4.0 2.0 4.0 5 # wed 3.0 5.0 2.0 3 # thu 8.0 12.0 8.0 7 # fri 15.0 11.0 13.0 9 # sat 21.0 18.0 17.0 21 # sun 25.0 16.0 25.0 17 # mean 11.9 9.3 10.9 10
При этом можно прочитать конкретный лист, если указать его название в параметре sheet_name :
df_analitic_results_from_file = pd.read_excel(path_for_analitic_results, index_col=0, sheet_name='shop_1') print(df_analitic_results_from_file) # => shop_1 # mon 7.0 # tue 4.0 # wed 3.0 # thu 8.0 # fri 15.0 # sat 21.0 # sun 25.0 # mean 11.9
Чтобы прочитать несколько листов и не переоткрывать файл, достаточно использовать экземпляр класса ExcelFile и его метод parse() . В последнем указывается имя нужного листа и дополнительные параметры чтения, аналогичные методу read_excel() .
excel_reader = pd.ExcelFile(path_for_analitic_results) df_shop_1 = excel_reader.parse('shop_1', index_col=0) df_shop_2 = excel_reader.parse('shop_2', index_col=0) print(df_shop_1) print(df_shop_2) # => shop_1 # mon 7.0 # tue 4.0 # wed 3.0 # thu 8.0 # fri 15.0 # sat 21.0 # sun 25.0 # mean 11.9 # shop_2 # mon 1.0 # tue 2.0 # wed 5.0 # thu 12.0 # fri 11.0 # sat 18.0 # sun 16.0 # mean 9.3
Данный подход для чтения файла Excel удобен, чтобы получить список всех листов. Для этого нужно посмотреть на атрибут sheet_names :
print(excel_reader.sheet_names) # => ['Total', 'shop_1', 'shop_2', 'shop_3', 'shop_4']
Если использовать наработки выше, можно собрать словарь из датафреймов, в которых будут располагаться все таблицы файла. Чтобы получить нужный датафрейм, нужно обратиться к словарю по ключу с соответствующим названием листа:
sheet_to_df_map = <> for sheet_name in excel_reader.sheet_names: sheet_to_df_map[sheet_name] = excel_reader.parse(sheet_name, index_col=0) print(sheet_to_df_map['shop_1']) print(sheet_to_df_map['Total']) # => shop_1 # mon 7.0 # tue 4.0 # wed 3.0 # thu 8.0 # fri 15.0 # sat 21.0 # sun 25.0 # mean 11.9 # shop_1 shop_2 shop_3 shop_4 # mon 7.0 1.0 7.0 8 # tue 4.0 2.0 4.0 5 # wed 3.0 5.0 2.0 3 # thu 8.0 12.0 8.0 7 # fri 15.0 11.0 13.0 9 # sat 21.0 18.0 17.0 21 # sun 25.0 16.0 25.0 17 # mean 11.9 9.3 10.9 10
Форматирование таблиц
За время своего развития Excel накопил довольно мощный функционал, чтобы анализировать и презентовать данные: создание графиков, цветовая подсветка результатов по условию, настройка шрифтов и многое другое.
В примере ниже мы форматируем итоговые аналитические данные: если значения в таблице превышают порог в одиннадцать заказов, то они раскрашиваются в один цвет, иначе — в другой. Цветовая дифференциация данных удобна, чтобы быстро оценивать результаты и искать закономерности в данных:
with pd.ExcelWriter( path_for_analitic_results, engine="xlsxwriter", mode='w') as excel_writer: # Add total df df_analitic_results.to_excel(excel_writer, sheet_name='Total') # Formatting total df threshold = 11 workbook = excel_writer.book worksheet = excel_writer.sheets['Total'] format1 = workbook.add_format('bg_color': '#FFC7CD', 'font_color': '#9C0006'>) format2 = workbook.add_format('bg_color': '#C6EFCD', 'font_color': '#006100'>) worksheet.conditional_format('B2:E9', 'type' : 'cell', 'criteria' : '>=', 'value' : threshold, 'format' : format1> ) worksheet.conditional_format('B2:E9', 'type' : 'cell', 'criteria' : ', 'value' : threshold, 'format' : format2> )
В примере выше используются методы движка xlsxwriter . Разбор всех возможностей форматирования данных при записи выходит за рамки данного урока. Можно глубже погрузиться в данную тему через документацию с примерами по следующей ссылке .
Выводы
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Чтение и запись файлов Excel (XLSX) в Python
Pandas можно использовать для чтения и записи файлов Excel с помощью Python. Это работает по аналогии с другими форматами. В этом материале рассмотрим, как это делается с помощью DataFrame.
Помимо чтения и записи рассмотрим, как записывать несколько DataFrame в Excel-файл, как считывать определенные строки и колонки из таблицы и как задавать имена для одной или нескольких таблиц в файле.
Установка Pandas
Для начала Pandas нужно установить. Проще всего это сделать с помощью pip .
Если у вас Windows, Linux или macOS:
pip install pandas # или pip3
В процессе можно столкнуться с ошибками ModuleNotFoundError или ImportError при попытке запустить этот код. Например:
ModuleNotFoundError: No module named 'openpyxl'
В таком случае нужно установить недостающие модули:
pip install openpyxl xlsxwriter xlrd # или pip3
Запись в файл Excel с python
Будем хранить информацию, которую нужно записать в файл Excel, в DataFrame . А с помощью встроенной функции to_excel() ее можно будет записать в Excel.
Сначала импортируем модуль pandas . Потом используем словарь для заполнения DataFrame :
import pandas as pd
df = pd.DataFrame( 'FC Bayern München', 'FC Barcelona', 'Juventus'],
'League': ['English Premier League (1)', 'Spain Primera Division (1)',
'English Premier League (1)', 'German 1. Bundesliga (1)',
'Spain Primera Division (1)', 'Italian Serie A (1)'],
'TransferBudget': [176000000, 188500000, 90000000,
100000000, 180500000, 105000000]>)Ключи в словаре — это названия колонок. А значения станут строками с информацией.
Теперь можно использовать функцию to_excel() для записи содержимого в файл. Единственный аргумент — это путь к файлу:
df.to_excel('./teams.xlsx')А вот и созданный файл Excel:
Стоит обратить внимание на то, что в этом примере не использовались параметры. Таким образом название листа в файле останется по умолчанию — «Sheet1». В файле может быть и дополнительная колонка с числами. Эти числа представляют собой индексы, которые взяты напрямую из DataFrame.
Поменять название листа можно, добавив параметр sheet_name в вызов to_excel() :
df.to_excel('./teams.xlsx', sheet_name='Budgets', index=False)Также можно добавили параметр index со значением False , чтобы избавиться от колонки с индексами. Теперь файл Excel будет выглядеть следующим образом:
Запись нескольких DataFrame в файл Excel
Также есть возможность записать несколько DataFrame в файл Excel. Для этого можно указать отдельный лист для каждого объекта:
salaries1 = pd.DataFrame( 'Salary': [560000, 220000, 125000]>)
salaries2 = pd.DataFrame( 'Salary': [370000, 270000, 240000]>)
salaries3 = pd.DataFrame( 'Salary': [160000, 260000, 250000]>)
salary_sheets =
writer = pd.ExcelWriter('./salaries.xlsx', engine='xlsxwriter')
for sheet_name in salary_sheets.keys():
salary_sheets[sheet_name].to_excel(writer, sheet_name=sheet_name, index=False)
writer.save()Здесь создаются 3 разных DataFrame с разными названиями, которые включают имена сотрудников, а также размер их зарплаты. Каждый объект заполняется соответствующим словарем.
Объединим все три в переменной salary_sheets , где каждый ключ будет названием листа, а значение — объектом DataFrame .
Дальше используем движок xlsxwriter для создания объекта writer . Он и передается функции to_excel() .
Перед записью пройдемся по ключам salary_sheets и для каждого ключа запишем содержимое в лист с соответствующим именем. Вот сгенерированный файл:
Можно увидеть, что в этом файле Excel есть три листа: Group1, Group2 и Group3. Каждый из этих листов содержит имена сотрудников и их зарплаты в соответствии с данными в трех DataFrame из кода.
Параметр движка в функции to_excel() используется для определения модуля, который задействуется библиотекой Pandas для создания файла Excel. В этом случае использовался xslswriter , который нужен для работы с классом ExcelWriter . Разные движка можно определять в соответствии с их функциями.
В зависимости от установленных в системе модулей Python другими параметрами для движка могут быть openpyxl (для xlsx или xlsm) и xlwt (для xls). Подробности о модуле xlswriter можно найти в официальной документации.
Наконец, в коде была строка writer.save() , которая нужна для сохранения файла на диске.
Чтение файлов Excel с python
По аналогии с записью объектов DataFrame в файл Excel, эти файлы можно и читать, сохраняя данные в объект DataFrame . Для этого достаточно воспользоваться функцией read_excel() :



