You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为df.to_html()生成的表格实现行文本条件着色?

Pandas表格转HTML时按条件设置整行文本颜色

问题说明

需要将Pandas表格转HTML时,把包含“Critical”的分组行(示例中Name为ABC、DEF、GHI的行)文本全部设为红色。

解决方案

直接用df.to_html()后做字符串替换的方式局限性很大,推荐用Pandas内置的Styler类来实现,步骤如下:

  1. 处理数据分组
    示例中Severity列的空值属于上一个有值的分组,先填充空值确保每行都能识别所属分组:

    df['Severity'] = df['Severity'].ffill()
    
  2. 定义样式函数
    编写函数判断行是否符合条件,返回对应的样式:

    def highlight_critical_rows(row):
        if row['Severity'] == 'Critical':
            return ['color: red' for _ in row]
        return [''] * len(row)
    
  3. 应用样式并生成HTML
    通过Styler应用样式后生成HTML:

    html_table = df.style.apply(highlight_critical_rows, axis=1).to_html(escape=False)
    

原方法问题说明

你之前的代码存在语法错误(format()未传入参数),而且字符串替换只能单独修改单个<td>标签,无法批量设置整行样式,当“Critical”不在固定列位置时,这种方法完全无法满足需求。

内容的提问来源于stack exchange,提问作者Pranav101py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:36:03