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

如何基于Date列创建DataFrame条件列:区分日期是否在今日前后

根据日期判断生成新列的实现方法

首先要把DataFrame里的Date列从字符串转换成日期时间类型,否则无法直接和当前日期做比较,之后通过日期对比就能生成目标新列,具体步骤如下:

步骤1:导入库并创建示例DataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "Date": ["10/29/2022", "10/30/2022", "11/5/2022", "11/6/2022"],
    "Values": [1, 6, 8, 12]
})

步骤2:转换日期列类型

将Date列转为datetime格式,才能进行日期比较:

df['Date'] = pd.to_datetime(df['Date'])

步骤3:获取今日日期(仅保留日期部分)

用normalize()去掉当前时间的时分秒,确保只做日期层面的对比,避免时间部分干扰:

today_date = pd.Timestamp.today().normalize()

步骤4:生成目标新列

通过日期对比生成新列,日期在未来则赋值1,否则赋值0,两种方法任选其一:

# 方法1:布尔值直接转整数(写法简洁)
df['Future_Flag'] = (df['Date'] > today_date).astype(int)

# 方法2:使用np.where(逻辑更直观)
df['Future_Flag'] = np.where(df['Date'] > today_date, 1, 0)

最终结果示例

假设今日是2022-11-01,执行后DataFrame会呈现如下结构:

DateValuesFuture_Flag
2022-10-2910
2022-10-3060
2022-11-0581
2022-11-06121

关键注意点

  • 必须转换Date列的类型,字符串和日期时间类型无法直接进行大小比较;
  • 使用normalize()是为了避免当前时间的干扰,比如今日是2022-11-05 14:00时,Date列的2022-11-05 00:00会被直接判定为过去,而我们需要的是纯日期的对比逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:45:33