2016-07-05 73 views
1

说我有以下几点:不理解在大熊猫MonthEnd的输出()

start = dt.datetime(2015,07,01) 
end = dt.datetime(2016,06,30) 

rng = pd.date_range(start, end,freq='M') 

print rng 

DatetimeIndex(['2015-07-31', '2015-08-31', '2015-09-30', '2015-10-31', 
      '2015-11-30', '2015-12-31', '2016-01-31', '2016-02-29', 
      '2016-03-31', '2016-04-30', '2016-05-31', '2016-06-30'], 
      dtype='datetime64[ns]', freq='M') 

我希望:

rng[0] + MonthBegin() 

给予的 '2015年7月1日' 的输出。相反,它显示'2015-08-01'

我在想什么?

回答

2

查看文档的Anchored Offset Semantics部分。

锚定偏移将捕捉到下一个锚点。如果您的日期在一个月内,MonthBegin()将捕捉到下个月的开始。

如果你想在当月开始,你可以减去MonthBegin()

rng[0] - MonthBegin() 

也可以添加MonthBegin(-1)

rng[0] + MonthBegin(-1) 
+0

的感谢!正是我所期待的 –