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

Pandas中date_range使用负频率时未包含指定结束日期的行为疑问

Pandas中date_range使用负频率时未包含指定结束日期的行为疑问

我想弄明白下面这段代码的行为:

import pandas as pd
pd.date_range("2016-09-01", "2006-03-01", freq="-6MS", inclusive="left")

这段代码返回的结果是:

DatetimeIndex(['2016-09-01', '2016-03-01', '2015-09-01', '2015-03-01',
               '2014-09-01', '2014-03-01', '2013-09-01', '2013-03-01',
               '2012-09-01', '2012-03-01', '2011-09-01', '2011-03-01',
               '2010-09-01', '2010-03-01', '2009-09-01', '2009-03-01',
               '2008-09-01', '2008-03-01', '2007-09-01', '2007-03-01',
               '2006-09-01'],
              dtype='datetime64[ns]', freq='-6MS')

注意这里**'2006-03-01' 缺失了**。

而当我把结束日期改成2006-03-02之后:

import pandas as pd
pd.date_range("2016-09-01", "2006-03-02", freq="-6MS", inclusive="left")

返回的结果就包含了2006-03-01:

DatetimeIndex(['2016-09-01', '2016-03-01', '2015-09-01', '2015-03-01',
               '2014-09-01', '2014-03-01', '2013-09-01', '2013-03-01',
               '2012-09-01', '2012-03-01', '2011-09-01', '2011-03-01',
               '2010-09-01', '2010-03-01', '2009-09-01', '2009-03-01',
               '2008-09-01', '2008-03-01', '2007-09-01', '2007-03-01',
               '2006-09-01', '2006-03-01'],
              dtype='datetime64[ns]', freq='-6MS')

我原本以为两种情况的结果应该是一样的,而且2006-03-01应该被排除才对?毕竟是从2016-09-01开始按6个月的间隔倒着数,那当结束日期设为比2006-03-01大的值(比如2006-03-02)时,不应该包含它才对,这到底是怎么回事呢?

备注:内容来源于stack exchange,提问作者JRach

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 20:20:27