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

如何合并DataFrame多列日期,保留ID列、NA值并取每行最新非空日期

多日期列合并解决方案

核心思路

利用pandas日期列的最大值计算逻辑,自动跳过空值取每行最新日期,全空行自动保留空值,无需额外写判断逻辑处理不同行的空值分布差异。

操作步骤

  • 第一步:将待合并的所有日期列统一转换为datetime格式,避免字符串形式的日期比较出错
  • 第二步:沿行方向计算待合并列的最大值,得到合并后的最新日期列
  • 第三步:按需保留ID列和新生成的合并日期列即可

代码实现

import pandas as pd

# 替换为你实际要合并的日期列名,有更多日期列直接追加到列表即可
date_cols = ["timestamp", "timestamp_c"]

# 批量转换日期格式,无效/空值会自动转为NaT
df[date_cols] = df[date_cols].apply(pd.to_datetime, errors="coerce")

# 合并日期:自动跳过空值取最新日期,所有日期列都为空的行返回NaT
df["merged_latest_date"] = df[date_cols].max(axis=1, skipna=True)

# 保留ID列和合并后的日期列,可自行调整保留的字段
final_df = df[["id", "merged_latest_date"]]

效果说明

  • 仅timestamp有值的行:合并结果取timestamp的值
  • 仅timestamp_c有值的行:合并结果取timestamp_c的值
  • 两列都有值的行:合并结果取两个日期中更新的那个
  • 两列都为空的行:合并结果保留空值,完全符合需求

参考数据样例

数据样例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:27:04