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

如何在pandas中基于其他列条件为DataFrame指定列设置样式

pandas跨列条件格式化实现方法

你可以通过pandas内置的Styler模块实现跨列判断的单元格样式设置,不需要额外依赖第三方库,具体实现代码如下:

  • 第一步:导入依赖并构造示例DataFrame
import pandas as pd

df = pd.DataFrame({
    "ID": [1, 2, 3, 4],
    "v": [-1, 4, -5, 6],
    "key": ["XYz", "ABC", "FFF", "34S"]
})
  • 第二步:编写自定义样式规则函数
    函数逐行接收整行数据作为输入,判断v列取值后,仅给符合条件的行的key列单元格设置红色字体样式,其余单元格保持默认格式:
def set_key_red(row):
    # 初始化全行列样式为空
    cell_styles = [""] * len(row)
    # 定位key列位置
    key_pos = row.index.get_loc("key")
    # 跨列判断:v列值大于0时修改key列样式
    if row["v"] > 0:
        cell_styles[key_pos] = "color: red"
    return cell_styles
  • 第三步:应用样式到DataFrame
    指定axis=1让样式函数按行遍历处理,最终生成的样式对象可以直接在Jupyter类环境中渲染,也支持导出为HTML文件:
# 应用样式
styled_table = df.style.apply(set_key_red, axis=1)

# Jupyter环境直接执行下面语句即可预览效果
# styled_table

# 如需导出带样式的表格到本地,可执行
# styled_table.to_html("formatted_table.html")

最终效果:v列值大于0的第2、4行,对应key列的ABC、34S文本会显示为红色,其余单元格样式不受任何影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:18:16