繁体   English   中英

将条件格式应用于 pandas dataframe 中的整行

[英]Apply conditional formatting to whole row in pandas dataframe

我想将条件格式应用于 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

然后,用'Total' 的标题突出显示整行:

  1. 定义如下 function:

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

对于我得到的上述数据:

在此处输入图像描述

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM