将条件格式应用于 pandas 数据框中的整行

Apply conditional formatting to whole row in pandas dataframe

我想将条件格式应用于数据框中的整行,其中有许多行名为 Total

def highlight_total(s):
    is_total=s=='Total'
    return['background-color: yellow' if v else '' for v in is_total]

df.style.apply(highlight_total)

但它只突出显示 Total 单元格而不是整行

假设您的 DataFrame 包含:

   Title   v1   v2   v3
1  Xxxx1   20   30   40
2  Yyyy1   80  170  260
3  Total  100  200  300
4  Xxxx2   70  120  210
5  Yyyy2  120  190  240
6  Total  190  310  450

然后,用 Title 高亮整行 'Total':

  1. 定义如下函数:

    def rowStyle(row):
        if row.Title == 'Total':
            return ['background-color: yellow'] * len(row)
        return [''] * len(row)
    
  2. 运行: df.style.apply(rowStyle, axis=1)(我假设你使用 Jupyter 笔记本).

以上数据我得到:

如果您还想突出显示索引列,运行:

df.reset_index().rename(columns={'index': ''}).style\
    .apply(rowStyle, axis=1).hide_index()