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

如何按单元格条件高亮Pandas DataFrame行?含透视表生成场景

高亮符合条件的DataFrame行

你通过透视表生成的是多层列结构的DataFrame,层级为[聚合函数(sum/len), completed on time],要高亮「按时完成(on schedule)和逾期(overdue)对应统计值均为0」的行,可以通过pandas.Styler实现:

步骤1:定义高亮规则函数

编写函数接收每行数据,判断是否满足条件后返回对应样式:

def highlight_rows(row):
    # 假设completed on time的取值为0(逾期)、1(按时),请根据实际取值调整
    # 检查所有聚合函数下,两种状态的数值是否都为0
    on_schedule_zero = (row.loc[:, (slice(None), 1)] == 0).all()
    overdue_zero = (row.loc[:, (slice(None), 0)] == 0).all()
    
    if on_schedule_zero and overdue_zero:
        return ['background-color: yellow'] * len(row)
    else:
        return [''] * len(row)

步骤2:应用样式到DataFrame

调用Styler.apply按行应用规则:

styled_df = df.style.apply(highlight_rows, axis=1)
# 渲染并显示结果
styled_df

补充说明

  • 如果completed on time的取值是字符串(比如'按时'/'逾期'),只需把代码中的0和1替换成对应实际值即可。
  • 若只需针对特定聚合函数判断(比如只看任务计数len),可以简化判断逻辑:
# 仅检查len层级下的按时、逾期计数是否都为0
on_schedule_zero = (row.loc[('len', 1)] == 0)
overdue_zero = (row.loc[('len', 0)] == 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:22:23