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

如何在包含NaN值的两列日期中获取最大值?并处理DF的日期校验需求

解决方案

1. 确保date列始终大于指定日期与pur_date列

操作步骤

  • 先将指定日期转换为datetime类型,避免类型不匹配:
    import pandas as pd
    specified_date = pd.to_datetime("2020-01-01")  # 替换为你的目标指定日期
    
  • 定位不符合条件的行:快速筛选出date列不满足要求的数据
    invalid_rows = df[(df['date'] <= specified_date) | (df['date'] <= df['pur_date'])]
    print(invalid_rows)
    
  • 修正数据:根据需求选择处理方式
    • 方式1:直接过滤掉不符合条件的行
      df = df[(df['date'] > specified_date) & (df['date'] > df['pur_date'])]
      
    • 方式2:自动调整date列为指定日期与pur_date的最大值加1天(保证date始终更大)
      df['date'] = df[['pur_date', specified_date]].max(axis=1) + pd.Timedelta(days=1)
      

2. 从包含NaN值的两列日期数据中获取最大值

pandas的max()方法会自动忽略NaN值,直接对日期列计算即可:

操作步骤

  • 确保目标列是datetime类型(若未转换):
    df['date_col1'] = pd.to_datetime(df['date_col1'])
    df['date_col2'] = pd.to_datetime(df['date_col2'])
    
  • 计算每行的最大日期,生成新列:
    df['max_date'] = df[['date_col1', 'date_col2']].max(axis=1)
    

示例效果

date_col1date_col2max_date
2023-01-01NaN2023-01-01
NaN2023-05-012023-05-01
2023-03-012023-04-012023-04-01
NaNNaNNaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:20:22