我有这个数据框:
Server Env. Model Percent_Utilized
server123 Prod Cisco. 50
server567. Prod Cisco. 80
serverabc. Prod IBM. 100
serverdwc. Prod IBM. 45
servercc. Prod Hitachi. 25
Avg 60
server123Uat Uat Cisco. 40
server567u Uat Cisco. 30
serverabcu Uat IBM. 80
serverdwcu Uat IBM. 45
serverccu Uat Hitachi 15
Avg 42
我需要根据某些条件更改 Percent_Utilized 列单元格的背景颜色。根据数字的大小,背景颜色需要为红色、黄色或绿色。我还需要根据 Percent_Utilized value.in 黄色胶体(红色、黄色或绿色)下的 Avg 值突出显示整个 Avg 行
我尝试使用此方法更改 Percent_Utilized 列下的单元格值:
def color(val):
if val > 80:
color = 'red'
elif val > 50 & val < 80:
color = 'yellow'
elif val < 50:
color = 'green'
return 'background-color: %s' % color
df.style.applymap(color, subset=["Percent_Utilized"]
我收到此错误:
UnboundLocalError: local variable 'color' referenced before assignment
我不知道如何更改以“Avg”开头的整行的颜色。如果平均值大于 80,则整条线应为红色;如果在 50 到 80 之间,则整条线应为黄色;如果低于 50,则整条线应为绿色。
我还需要将其写入具有相同颜色背景的 Excel 文件。
你的逻辑不清楚,例如如果 val =80,尝试使用 elif 代替
这是一个例子:
好的,让我们满足您的第二个需求:两列的条件:如果差异小于某个值,则我随机选择此条件,否则它是一种颜色,否则是另一种颜色:
这是您可以更改条件逻辑的输出
我建议你看看apply和applymap(是的 applymap 会导致问题)
因此,只需阅读该文档,看看可以在此处更改哪些内容。
使用以下命令将其保存为样式