首页 > 解决方案 > 如何使用 Pandas to_html 将相同的 html bg 颜色应用于所有列

问题描述

我一直在尝试根据标识符数据将相同的背景颜色应用于同一行中的所有单元格。

例如:

在此处输入图像描述

如何使整行颜色相同?现在只有日期列是彩色的。

我正在使用df.to_html()然后sed

sed -i 's@<td>2020-08-31<\/td>@<td bgcolor="grey">2020-08-31<\/td>@g' <file>
sed -i 's@<td>2020-09-01<\/td>@<td bgcolor="#F49884">2020-09-01<\/td>@g' <file>

我愿意使用sed/awk或 Python。

标签: pythonhtmlpandassed

解决方案


您可以在 Python 中使用.replace().

Pandasto_html()只返回一个表示数据框的 html 字符串。然后,您可以对生成的字符串使用任何 Python 字符串操作。

例如:

def add_bg_color(html, identifier):
    return html.replace(
        f"<td>{identifier}<\/td>", 
        f"<td background-color='grey'>{identifier}<\/td>"
    )

像这样使用它:

html = df.to_html()
add_bg_color(html, '2020-08-31')

请注意,我还更改bgcolorbackground-color正确的 CSS 属性名称。


推荐阅读