将条件格式应用于 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':
定义如下函数:
def rowStyle(row):
if row.Title == 'Total':
return ['background-color: yellow'] * len(row)
return [''] * len(row)
运行: df.style.apply(rowStyle, axis=1)
(我假设你使用
Jupyter 笔记本).
以上数据我得到:
如果您还想突出显示索引列,运行:
df.reset_index().rename(columns={'index': ''}).style\
.apply(rowStyle, axis=1).hide_index()
我想将条件格式应用于数据框中的整行,其中有许多行名为 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':
定义如下函数:
def rowStyle(row): if row.Title == 'Total': return ['background-color: yellow'] * len(row) return [''] * len(row)
运行:
df.style.apply(rowStyle, axis=1)
(我假设你使用 Jupyter 笔记本).
以上数据我得到:
如果您还想突出显示索引列,运行:
df.reset_index().rename(columns={'index': ''}).style\
.apply(rowStyle, axis=1).hide_index()