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
相关产品推荐
相关产品推荐

