[英]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' 的标题突出显示整行:
定义如下 function:
def rowStyle(row): if row.Title == 'Total': return ['background-color: yellow'] * len(row) return [''] * len(row)
运行: 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.