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

如何使用Pandas styler实现类似Excel的条件格式,高亮两列数据差异?

期望实现的Excel格式效果截图

错误原因分析

你原有代码使用applymap逐元素遍历的逻辑存在问题:判断条件中将Past_Week_SO的单个单元格值和完整的SO Status列做对比,返回的是布尔序列而非单个判断结果,因此无法正常生效。

正确实现方案

方案1:按行判断,兼容性更强

适配多列样式调整场景,逻辑清晰易修改:

import pandas as pd

def highlight_diff(row):
    # 初始化所有列无自定义样式
    style_series = pd.Series('', index=row.index)
    if row['Past_Week_SO'] != row['SO Status']:
        # 仅给Past_Week_SO列设置红色背景
        style_series['Past_Week_SO'] = 'background-color: red'
    return style_series

df_style = df_master.style.apply(highlight_diff, axis=1)
# 导出带样式的Excel可直接调用:df_style.to_excel('对比结果.xlsx', index=False)

方案2:单列掩码判断,性能更高

仅针对Past_Week_SO列做处理,大数据量下效率更优:

# 生成两列内容差异的布尔掩码
diff_mask = df_master['Past_Week_SO'] != df_master['SO Status']
# 生成对应样式序列,不一致的行标红
diff_styles = diff_mask.map(lambda is_diff: 'background-color: red' if is_diff else '')
# 将样式仅应用到Past_Week_SO列
df_style = df_master.style.apply(lambda _: diff_styles, subset=['Past_Week_SO'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 17:48:03