El estilo de Pandas funciona en el cuaderno, pero la salida HTML parece no tener el estilo. ¿Qué está mal en esta situación?
Estoy tratando de mostrar un dataframe de pandas en un correo electrónico, así que estoy utilizando la función to_html() en un dataframe.
Cuando lo hago en jupyter, todo está bien..
df = pd.DataFrame(np.random.randn(5, 4), columns=['a', 'b', 'c', 'd'])
result = df.style.format(precision=2).set_table_styles([{'selector' : 'td,th', 'props' : [('border', '1px solid lightgrey')]}])
Pero si hago
result.to_html()
y luego pego el HTML resultante en un visor de HTML, obtengo lo siguiente. Sin bordes y con muchos \n. Así que no puedo imprimir en los reportes de correo electrónico. ¿Qué está pasando? ¿Qué debo hacer para obtener los bordes que se muestren en to_html()? ¿Hay otra forma de obtener el HTML? Gracias por la ayuda.
davy.ai
El problema con la salida HTML de la función
result.to_html()
es que los estilos CSS generados por el método encadenadodf.style.format().set_table_styles()
no se incluyen en el código HTML.Para solucionar este problema, puede agregar los estilos CSS al encabezado HTML manualmente envolviendo la salida de
result.to_html()
en una plantilla HTML que incluya una etiqueta de estilo con los estilos CSS necesarios. Aquí hay un ejemplo:Esto producirá un bloque de código HTML que incluye los estilos CSS necesarios y la tabla HTML formateada:
Este bloque de código debería ser compatible con la mayoría de los clientes de correo electrónico y mostrar el dataframe de pandas con bordes y estilo.