我想创建一个列表(或数组或其他任何东西),每个月间隔一个给定数量的日期。在
基本上我想要的就是这个
>>>some_function(start_date=date(2005, 5, 14), periods=4, freq='M')
['2005-05-14', '2005-06-14', '2005-07-14', '2005-08-14']
如果月初日快到月底了,我要这个
^{pr2}$我知道pandas date_range函数,但是它会产生这个函数
pd.date_range(date(2005, 5, 14), periods=4, freq='M')
Out[1]: DatetimeIndex(['2005-05-31', '2005-06-30', '2005-07-31', '2005-08-31'],
dtype='datetime64[ns]', freq='M')
也就是说,它将月末设置为日。这不是我想要的。在
显然,这可以通过迭代周期数产生,但是当startmonth的日期接近该月的最后一天时,这会造成麻烦。在
有没有人知道有一个函数会产生这个函数,或者上面概述的方法是唯一的方法吗?在
我认为你所追求的行为是,你想要一个日期范围,所有的日期都是在同一天的一个月作为你的开始日期,除了使用一个月的最后一天,在一个月里有较少的天数。在
您可以使用
pandas.DateOffset(months=1, day=day_of_month)
作为freq
参数,其中day_of_month
是您希望每个日期在哪个月的哪一天。对于最后一天小于day_of_month
的月份,这将自动使用该月的最后一天。在这应该行得通。
add_months
函数通过How to increment datetime by custom months in python without using library中的@davewbb。在我精心制作了以下内容:
相关问题 更多 >
编程相关推荐