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

Pandas中Timestamp与datetime.date类型日期比较无法匹配问题

问题根因

pandas Timestamp 类型与 Python 原生 datetime.date 类型分属不同数据类,即使二者代表的日期数值一致,直接做比较运算也会因类型不匹配返回 False,这是你等值查询返回空 DataFrame 的核心原因。

可用解决方案

方案1:将shortdate列统一转为date类型筛选

适合无需关注时分秒、仅按日期维度筛选的场景:

import datetime
from datetime import timedelta

# 生成日期边界
todays_date = datetime.today().date()
date_of_last_week = todays_date - timedelta(days=7)

# 筛选一周内的记录
filtered_df = df[df['shortdate'].dt.date.between(date_of_last_week, todays_date)]

单条等值测试可按如下逻辑修改:

just_date = entry_1000.date()
print(df.loc[df['shortdate'].dt.date == just_date])

方案2:将参考日期转为Timestamp类型筛选

无需修改原DataFrame的字段类型,运算效率更高:

import datetime
from datetime import timedelta
import pandas as pd

# 生成Timestamp类型的日期边界
todays_date = pd.to_datetime(datetime.today().date())
date_of_last_week = todays_date - timedelta(days=7)

# 直接筛选即可
filtered_df = df[df['shortdate'].between(date_of_last_week, todays_date)]

补充说明

如果shortdate列存储的时间包含非0点的时分秒数值,使用方案2时可将结束边界调整为 todays_date + timedelta(days=1),避免今日非0点的记录被排除。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:12:03