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

如何用Python/pandas按行比较多日期列并高亮每行最晚日期

Pandas DataFrame 按行高亮最晚日期解决方案

核心问题原因

  1. 之前使用highlight_max时axis参数错误:axis=0是按列计算最大值,要按行匹配同一行的最晚日期需要设置为axis=1
  2. 类型报错是因为目标日期列中存在空值NaT,Pandas在样式计算时会将含NaT的列强制转换为浮点类型,触发日期与浮点值比较的类型错误

完整可运行代码

import pandas as pd

# 1. 先统一转换目标日期列格式,无效值转为NaT
date_columns = ['CAC Clearance', 'ASB Results Received','Arch Assessment','Bio Assessment']
for col in date_columns:
    checks[col] = pd.to_datetime(checks[col], errors='coerce')

# 2. 自定义行高亮规则
def highlight_row_latest(row):
    row_date_values = row[date_columns]
    # 取当前行最晚日期,自动忽略空值
    latest_date = row_date_values.max()
    # 生成样式:等于最晚日期的单元格标黄,其余无样式
    return ['background-color: yellow' if val == latest_date else '' for val in row_date_values]

# 3. 应用样式输出
checks.style.apply(highlight_row_latest, axis=1, subset=date_columns)

补充说明

如果一行中存在多个相同的最晚日期,上述代码会将所有相同的最晚日期单元格同时高亮,符合常规业务需求。如果只需高亮第一个匹配的最晚日期,可以修改自定义函数的判断逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:01