如何在 pandas date_range 方法中包含结束日期?

2022-01-24 00:00:00 python pandas datetime string range

问题描述

pd.date_range('2016-01', '2016-05', freq='M', ).strftime('%Y-%m'),上个月是2016-04,但我期待它是 2016-05.在我看来,这个函数的行为类似于 range 方法,其中 end 参数不包含在返回数组中.

From pd.date_range('2016-01', '2016-05', freq='M', ).strftime('%Y-%m'), the last month is 2016-04, but I was expecting it to be 2016-05. It seems to me this function is behaving like the range method, where the end parameter is not included in the returning array.

有没有办法在不处理结束月份的字符串的情况下将结束月份包含在返回数组中?

Is there a way to get the end month included in the returning array, without processing the string for the end month?


解决方案

一种不用自己搞定月末的方法.

A way to do it without messing with figuring out month ends yourself.

pd.date_range(*(pd.to_datetime(['2016-01', '2016-05']) + pd.offsets.MonthEnd()), freq='M')

DatetimeIndex(['2016-01-31', '2016-02-29', '2016-03-31', '2016-04-30',
           '2016-05-31'],
          dtype='datetime64[ns]', freq='M')

相关文章