write type num_format excelwriter engine create color python excel pandas format xlsxwriter

python - type - pandas xlsxwriter, encabezado de formato



xlsxwriter cell type (3)

Creo que primero necesitas restablecer el estilo de encabezado predeterminado, luego puedes cambiarlo:

pd.core.format.header_style = None

Todos juntos:

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()

Explicando por jmcnamara , gracias:

En Excel, un formato de celda anula un formato de fila anula un formato de columna. El pd.core.format.header_style se convierte a un formato y se aplica a cada celda del encabezado. Como tal, el valor predeterminado no puede ser anulado por set_row() . Establecer pd.core.format.header_style en None significa que las celdas del encabezado no tienen un formato definido por el usuario y, por lo tanto, puede ser reemplazado por set_row() .

EDITAR: En la versión 0.18.1 tienes que cambiar

pd.core.format.header_style = None

a:

pd.formats.format.header_style = None

EDIT: desde la versión 0.20 esto cambió de nuevo

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

gracias krvkir

Estoy guardando pandas DataFrame to_excel usando xlsxwriter. Me las arreglé para formatear todos mis datos (establecer el ancho de la columna, el tamaño de la fuente, etc.) excepto para cambiar la fuente del encabezado y no puedo encontrar la manera de hacerlo. Aquí está mi ejemplo:

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()

La penúltima línea que intenta establecer el formato para el encabezado no hace nada.


En los pandas 0.20 la solución de la respuesta aceptada cambió nuevamente.

El formato que se debe establecer en Ninguno se puede encontrar en:

pandas.io.formats.excel.header_style


Una actualización para cualquiera que llegue a esta publicación y esté utilizando Pandas 0.20.1.

Parece que el código requerido es ahora

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

Aparentemente, el submódulo de excel no se importa automáticamente, por lo que simplemente intentar pandas.io.formats.excel.header_style = None solo generará un AttributeError .