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

自动筛选Pandas DataFrame:从最新日期前一天20:01至当日5:59

Pandas日期范围筛选解决方案

步骤1:确保日期列为datetime类型

如果你的TemporaryDateFilter列是字符串格式,必须先转换为datetime类型,否则所有时间计算都会失效:

import pandas as pd

final_report['TemporaryDateFilter'] = pd.to_datetime(final_report['TemporaryDateFilter'])

步骤2:定位最新日期

提取数据中最新的日期(仅日期部分,排除时分秒干扰):

latest_date = final_report['TemporaryDateFilter'].dt.date.max()

步骤3:计算目标时间范围

  • 起始时间:最新日期前一天的20:01
  • 结束时间:最新日期的5:59
# 计算起始时间
start_time = pd.Timestamp(latest_date) - pd.Timedelta(days=1) + pd.Timedelta(hours=20, minutes=1)
# 计算结束时间
end_time = pd.Timestamp(latest_date) + pd.Timedelta(hours=5, minutes=59)

步骤4:筛选符合条件的数据

用布尔索引筛选出时间范围内的行:

filtered_data = final_report[
    (final_report['TemporaryDateFilter'] >= start_time) &
    (final_report['TemporaryDateFilter'] <= end_time)
]

关于pd.DateOffset失效的可能原因

  1. 未将字符串列转换为datetime类型,导致DateOffset无法识别时间格式
  2. 直接使用final_report['TemporaryDateFilter'].max()获取完整datetime(包含时分秒),以此计算范围会导致起始/结束时间偏移错误
  3. DateOffset的参数组合错误(比如误用months而非days)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:25:21