You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为DataFrame列设置背景色时出现错误,请求技术支持

修复DataFrame列背景色设置的错误

你的代码里有几个关键问题导致了执行错误,我来帮你逐一修正:

问题1:逻辑运算符使用错误

Python中逻辑与要使用and,而&是位运算符,同时由于运算符优先级问题,你需要给每个条件单独加括号,否则会出现运算顺序混乱的问题。

问题2:设置的是字体颜色而非背景色

你当前返回的color: %s是修改字体颜色,要设置单元格背景色,应该用background-color: %s。

问题3:样式方法选择不当

针对单个单元格元素的样式函数,更适合用applymap方法(它专门处理元素级别的样式),而apply通常用于行/列级别的批量操作。


修正后的代码如下:

def color_red_or_green(val):
    # 改用更清晰的if-elif-else结构,也保留逻辑判断的准确性
    if val >= 70:
        color = 'green'
    elif 40 <= val < 70:
        color = 'orange'
    else:
        color = 'red'
    # 改为设置背景色
    return f'background-color: {color}'

# 使用applymap针对列内每个元素应用样式
week2_Percentage.style.applymap(color_red_or_green, subset=['availability'])

如果你偏好使用三元表达式,修正后的版本如下:

def color_red_or_green(val):
    color = 'green' if val >=70 else 'orange' if (val <70) and (val >=40) else 'red'
    return f'background-color: {color}'

week2_Percentage.style.applymap(color_red_or_green, subset=['availability'])

这样就能正确为availability列的单元格按条件设置背景色了。

内容的提问来源于stack exchange,提问作者Dipam Soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:06:49