pandas xlsxwriter, заголовок форматирования

Я сохраняю pandas DataFrame to_excel с помощью xlsxwriter. Мне удалось отформатировать все мои данные (установить ширину столбца, размер шрифта и т. Д.), За исключением изменения шрифта заголовка, и я не могу найти способ сделать это. Вот мой пример:

import pandas as pd data = pd.DataFrame({'test_data': [1,2,3,4,5]}) writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter') data.to_excel(writer, sheet_name='test', index=False) workbook = writer.book worksheet = writer.sheets['test'] font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10}) header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True}) worksheet.set_column('A:A', None, font_fmt) worksheet.set_row(0, None, header_fmt) writer.save() 

Предпоследняя строка, которая пытается установить формат для заголовка, ничего не делает.

  • как форматировать определенные ячейки в excel с помощью пакета xlsx в python
  • Объект XlsxWriter сохраняет как HTTP-ответ для создания загрузки в Django
  • Используя Python, напишите файл Excel со столбцами, скопированными из другого файла Excel
  • Применение форматирования по строкам в дополнение к форматированию столбцов с помощью xlsxwriter
  • Использование xlsxwriter в Google App Engine для Python
  • Запись изображения pandas / matplotlib непосредственно в файл XLSX
  • Проблемы с DateTime в django xlsxwriter
  • Как писать / обновлять данные в ячейках существующей рабочей книги XLSX с помощью xlsxwriter в python
  • 3 Solutions collect form web for “pandas xlsxwriter, заголовок форматирования”

    Я думаю, вам нужно сначала сбросить стиль заголовка по умолчанию, а затем вы можете его изменить:

     pd.core.format.header_style = None 

    Все вместе:

     import pandas as pd data = pd.DataFrame({'test_data': [1,2,3,4,5]}) writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter') pd.core.format.header_style = None data.to_excel(writer, sheet_name='test', index=False) workbook = writer.book worksheet = writer.sheets['test'] font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10}) header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True}) worksheet.set_column('A:A', None, font_fmt) worksheet.set_row(0, None, header_fmt) writer.save() 

    Объясняя jmcnamara , спасибо:

    В Excel формат ячейки переопределяет формат строки, переопределяет формат столбца. pd.core.format.header_style преобразуется в формат и применяется к каждой ячейке в заголовке. Таким образом, значение по умолчанию не может быть отменено set_row() . Установка pd.core.format.header_style в None означает, что ячейки заголовка не имеют пользовательского формата и, следовательно, могут быть переопределены set_row() .

    EDIT: в версии 0.18.1 вы должны изменить

     pd.core.format.header_style = None 

    чтобы:

     pd.formats.format.header_style = None 

    спасибо krvkir .

    Обновление для всех, кто сталкивается с этим сообщением и использует Pandas 0.20.1.

    Кажется, что требуемый код сейчас

     import pandas.io.formats.excel pandas.io.formats.excel.header_style = None 

    По-видимому, подмодуль excel не импортируется автоматически, поэтому просто попытка pandas.io.formats.excel.header_style = None сама по себе повысит AttributeError .

    В pandas 0.20 решение принятого ответа снова изменилось.

    Формат, который должен быть установлен на None, можно найти по адресу:

     pandas.io.formats.excel.header_style 
    Interesting Posts

    Используя Flask-WTForms, как мне создать раздел формы в html?

    Могу ли я создавать обработчики сообщений OSC, содержащие подстановочные знаки?

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

    Не удалось получить файлы из send_from_directory () в колбе

    Как «остановить» и «возобновить» длительный сценарий Python?

    Добавление разброса точек к ящику с использованием matplotlib

    Python проверяет, является ли строка одним из определенного набора значений

    Утилита Python устраняет необходимость в модульных тестах?

    Внедрение AMQP C ++

    Витой сетевой клиент с многопроцессорными рабочими?

    Python – найти индекс элемента в списке списков

    Захват произвольного пути в маршруте Flask

    Общие элементы между двумя списками, не использующими наборы в Python

    Объединение двух изображений с OpenCV

    исключая строки из фрейма данных pandas на основе значения столбца, а не значения индекса

    Python - лучший язык программирования в мире.