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

使用pandas 2.2.2与Python3.11,pd.date_range为何未包含指定结束日期?

为什么pandas date_range用freq='1M'时未包含预期的结束日期?

核心原因

问题出在对两个参数的理解偏差上:

  • freq='1M'的实际作用:这个频率代表「月末频率(Month End)」,生成的是每个月的最后一天。你期望的2024-04-30 04:01:40+00:00是4月的月末日期,但这个日期晚于你指定的end_date(2024-04-15T00:00:00Z),因此不会被纳入生成范围。
  • inclusive='both'的真实含义:这个参数的作用是当start或end恰好是频率生成的日期点时,将它们包含进去,而非强制生成超过end_date的日期。你的end_date是4月15日,不属于任何月末日期,所以该参数无法触发生成4月末的日期。

解决方案

如果想要包含2024年4月末的日期,只需把end_date调整为不早于2024年4月30日即可,示例代码如下:

import pandas as pd

start_date = pd.to_datetime('2023-04-05T04:01:40Z')
end_date = pd.to_datetime('2024-04-30T00:00:00Z')  # 修改为4月末及以后的日期
full_date_range = pd.date_range(start=start_date, end=end_date, freq='1M', inclusive='both')
for date in full_date_range.to_list():
    print(date)

运行后就会输出包含2024-04-30 04:01:40+00:00的完整日期范围。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:42:21