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

如何根据单元格值条件修改pandas指定列的背景颜色

实现方法

你现有代码有几处需要修正才能实现「Age列值为33时修改对应单元格背景色」的需求:

  • 你当前使用的color: 颜色值是CSS中控制字体颜色的属性,修改单元格背景色需要使用background-color属性
  • applymap默认会对整张表所有单元格生效,你只需要针对Age列做判断,不需要给其他列套样式规则,可以通过subset参数指定样式生效的列范围
  • df.style.applymap()会返回独立的Styler样式对象,直接print(df)输出的是未加样式的原始DataFrame,看不到样式效果,需要在支持Styler渲染的环境(比如Jupyter Notebook)调用这个对象,或者用它的导出方法生成带样式的文件。

可直接运行的正确代码如下:

import pandas as pd

df = pd.DataFrame.from_dict(
    {
        "Nombre": ["Mike", "Jordan", "John"],
        "Age": [33, 45, 20],
        "Lugar": ["Arg", "Pol", "Ind"]
    }
)

def set_age_bg(val):
    # 值等于33时返回绿色背景样式,其余情况不设置特殊背景
    return "background-color: green" if val == 33 else ""

# 指定样式仅在Age列生效
styled_table = df.style.applymap(set_age_bg, subset=["Age"])

# Jupyter环境直接运行styled_table即可看到带背景色的表格
# 需要导出带样式的网页表格可以用下面的代码
# styled_table.to_html("age_styled_table.html")

如果你需要给Age列不等于33的单元格也设置红色背景,只需要把样式函数修改为:

def set_age_bg(val):
    bg = "green" if val == 33 else "red"
    return f"background-color: {bg}"

内容的提问来源于stack exchange,提问作者Lautaro Casalini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:30:49