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

如何检查pandas DataFrame日期列最大与最小日期间的所有日期是否存在并找出缺失日期

实现步骤

核心思路是先把日期列转为可运算的时间类型,生成完整日期范围后和现有日期做对比,步骤如下:

  1. 转换Date列数据类型为pandas datetime格式,避免字符串比较的误差
  2. 生成现有日期最大值和最小值之间的连续完整日期序列
  3. 对比现有去重日期和完整序列,筛选出缺失的日期后转为指定格式的列表

完整代码示例

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({"Date":["09-01-2021","09-02-2021","09-02-2021","09-04-2021"]})

# 1. 转换为datetime类型,指定格式避免解析错误
df["Date"] = pd.to_datetime(df["Date"], format="%m-%d-%Y")

# 2. 生成完整的连续日期序列
full_dates = pd.date_range(start=df["Date"].min(), end=df["Date"].max(), freq="D")

# 3. 筛选缺失日期并转为目标格式列表
missing_dates = full_dates[~full_dates.isin(df["Date"].unique())].strftime("%m-%d-%Y").tolist()

print(missing_dates)

输出结果

['09-03-2021']

如果需要快速检查是否所有日期都存在,直接判断len(missing_dates) == 0即可,返回True代表无缺失日期,返回False代表存在缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:36:04