Pandas DataFrame to HTML:格式化值以显示居中

Ric*_*olz 3 html python dataframe python-3.x pandas

我有一个pandas DataFrame并且正在使用该DataFrame.to_html方法生成一个表格,我可以在 HTML 电子邮件中发送。我只是希望某些列中的值居中,但也想知道一般如何将格式应用于表格。我曾尝试应用此处找到的文档以及在使用df.style之前使用,to_html如下所示:

df.style.set_properties(**{'text-align':'center'})
Run Code Online (Sandbox Code Playgroud)

但我仍然让我的所有值左对齐(除了标题,它们居中)。

将所有列值(或子集)居中的正确方法是什么,还有哪些其他可用于格式化的选项?(例如加粗文本、更改背景或边框颜色等)

此外,应该在什么阶段应用这种格式?在to_html我尝试使用的方法内或之前df.style?谢谢!

Bub*_*Gut 5

我建议在函数中使用格式化程序to_html,参数的描述:

格式化程序:单参数函数的列表或字典,可选的格式化程序函数,按位置或名称应用于列元素,默认为无。每个函数的结果必须是一个 unicode 字符串。列表的长度必须等于列数。

例如,如果您想让所有Name列都加粗:

df.to_html(formatters={'Name': lambda x: '<b>' + x + '</b>'})
Run Code Online (Sandbox Code Playgroud)

让我知道它是否有效!


Ric*_*olz 5

经过一些研究和Bubble Bubble Bubble Gut的帮助,这可以通过将所有<tr>标签替换为<tr align="center">via来轻松完成:

html2 = html.replace('<tr>', '<tr align="center">')
print(html2)
Run Code Online (Sandbox Code Playgroud)


小智 5

我通过对 CSS 和 python 代码进行一些更改解决了这个问题。这是我的Python代码:

dft.to_html(classes=["table-bordered", "table-striped", "table-hover", "isi"]
Run Code Online (Sandbox Code Playgroud)

我创建“isi”类并用 CSS 编写它,如下所示:

.isi {
text-align:center; }
Run Code Online (Sandbox Code Playgroud)

这是以值为中心的结果