xlsxwriter no aplica el formato a la fila del encabezado del dataframe – Python Pandas

Estoy tratando de tomar un dataframe y crear una hoja de cálculo a partir de ese dataframe utilizando el xlsxwriter

Estoy tratando de hacer un poco de formato a la fila del encabezado, pero el único formato que parece estar funcionando en esa fila es para el alto de la fila. Las mismas opciones de formato exactas funcionan en las otras filas del dataframe.

Por favor vea el código a continuación ..

El color rojo (y la altura) se aplica a todas las filas excepto la fila de encabezado (fila 2); el color rojo se aplica a la fila 0 y a la fila 3, pero solo la altura se aplica a la fila 2

Cualquier ayuda sería muy apreciada.

import numpy as np import pandas as pd from pandas.io.data import DataReader from pandas import DataFrame from IPython import display import xlsxwriter WorkBookName="test.xlsx" df3=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',') writer = pd.ExcelWriter(WorkBookName, engine='xlsxwriter') df3.to_excel(writer, sheet_name="sheet",index=False,startrow=2) workbook = writer.book worksheet = writer.sheets["sheet"] worksheet.write(0,0,"text string") worksheet.write(0,1,"text string") worksheet.write(0,2,"text string") worksheet.write(0,3,"text string") color_format = workbook.add_format({'color': 'red'}) worksheet.set_row(0,50,color_format) worksheet.set_row(2,50,color_format) worksheet.set_row(3,50,color_format) writer.save() display.FileLink(WorkBookName) 

Está intentando cambiar el formato del encabezado, por lo que primero debe restablecer la configuración predeterminada del encabezado.

 pd.core.format.header_style = None 

Luego aplique el formato según sea necesario

 format = workbook.add_format() format.set_align('center') format.set_align('vcenter') worksheet.set_column('A:C',5, format) 

Aquí está el código de trabajo completo

 d=pd.DataFrame({'a':['a','a','b','b'], 'b':['a','b','c','d'], 'c':[1,2,3,4]}) d=d.groupby(['a','b']).sum() pd.core.format.header_style = None writer = pd.ExcelWriter('pandas_out.xlsx', engine='xlsxwriter') workbook = writer.book d.to_excel(writer, sheet_name='Sheet1') worksheet = writer.sheets['Sheet1'] format = workbook.add_format() format.set_align('center') format.set_align('vcenter') worksheet.set_column('A:C',5, format) writer.save() 

En caso de que tenga 0.22, debe hacer pd.io.formats.excel.header_style = None . Mira esta página de git .