【问题标题】:Pandas DataFrame to HTML: Formatting the values to display centeredPandas DataFrame 到 HTML:格式化值以显示居中
【发布时间】:2018-09-28 22:27:30
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python html python-3.x pandas dataframe


    【解决方案1】:

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

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

    【讨论】:

    • 或者像这样使用 CSS 例如 TD 和 TH 标签 html = str(df_group[:5].to_html()).replace('&lt;td&gt;', '&lt;td style="text-align: left"&gt;').replace('&lt;th&gt;', '&lt;th style="text-align: left"&gt;')
    【解决方案2】:

    我建议在to_html 函数中使用formatters,参数说明:

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

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

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

    让我知道它是否有效!

    【讨论】:

    • 这对我来说很有意义。您能否举个例子,使用formatters 将所有单元格值(所有列)居中?
    • @RichardGolz 如果只是为了使单元格居中,我可能只是修改使用df.to_html 后得到的字符串,方法是在align='center' 标记内添加align='center',使其变为@ 987654328@,对我来说,这比将每列居中更直接。
    • 类似html[:6] + ' align="center"' + html[6:]
    • 我现在有了&lt;table align="center" border="1" class="dataframe"&gt;,但它似乎仍然是左对齐的。叹。下面我确实看到了&lt;thead&gt; &lt;tr style="text-align: right;"&gt; - 想知道这是否与它有关(尽管我的数据显示为左对齐)
    • html.replace('text-align: right;', 'text-align: center') 解决问题了吗?
    【解决方案3】:

    我通过对 CSS 和 python 代码稍作改动解决了这个问题。这是我的python代码:

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

    我创建“isi”类并用 CSS 写成这样:

    .isi {
    text-align:center; }
    

    这是结果 Values Centered

    【讨论】:

    • 不熟悉CSS的朋友,代码应该是完整的。代码示例在“isi”的定义中给出了“无效语法”错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2021-10-23
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2016-03-19
    • 2017-08-06
    相关资源
    最近更新 更多