python-3.x Pandas DataFrame到HTML:设置值的格式以居中显示

oipij1gg  于 2023-03-31  发布在  Python
关注(0)|答案(5)|浏览(462)

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

df.style.set_properties(**{'text-align':'center'})

但我仍然得到了我所有的值左对齐(除了标题,这是居中)。
将所有列值(或列值的子集)居中的正确方法是什么?还有哪些其他选项可用于格式化?(例如,粗体文本,更改背景或边框颜色等)
此外,在什么阶段应该应用这种格式?在to_html方法中还是在df.style方法之前?谢谢!

jtjikinw

jtjikinw1#

如果你想让整个表格居中,只需使用justify参数:

df.to_html(justify="center")
jtoj6r0c

jtoj6r0c2#

我建议在to_html函数中使用formatters,参数描述:

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

例如,如果你想让所有的Name列加粗:

df.to_html(formatters={'Name': lambda x: '<b>' + x + '</b>'})

让我知道它是否有效!

olmpazwi

olmpazwi3#

经过一些研究和Bubble Bubble Bubble Gut的帮助,这可以很容易地通过以下方式将所有<tr>标记替换为<tr align="center">来完成:

html2 = html.replace('<tr>', '<tr align="center">')
print(html2)
rta7y2nd

rta7y2nd4#

我在CSS和Python代码中做了一点修改,解决了这个问题。下面是我的Python代码:

dft.to_html(classes=["table-bordered", "table-striped", "table-hover", "isi"]

我创建了一个“isi”类,并在CSS中这样写:

.isi {
text-align:center; }

下面是结果Values Centered

xyhw6mcr

xyhw6mcr5#

我建议使用Styler对象而不是to_html()参数。这样你就可以把样式和渲染分开。

# create test dataframe
df = pd.DataFrame({"what": ["a", "b", "c", "d"], "howmuch": [55, 60, 101, 78]})

# create a Styler
df_styled = df.style.set_properties(
    **{"text-align": "center", "font-weight": "bold"}
).hide(axis="index")

# export html with style
df_styled.to_html("myFile.html")

相关问题