Pandas:日期范围创建

2024-05-13 08:43:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在考虑工作日的情况下,在熊猫内创建一个月日期范围

例如:dt_range = pd.date_range(start='2017-12-20', periods=5, freq='M')

含义:从2017年12月20日开始,每20日滚动一次,持续5个月,如果该滚动日期不是工作日,则取下一个滚动日期(但保留20日以备下次观察)

同样:以日期结束,向后滚动,每20个,持续5个月。 例如:

dt_range = pd.date_range(end='2018-05-20', periods=5, freq='M')

我一直在咨询Pandas offset aliases但是,我的思维方式似乎与他们的不同步,因为他们关注的是月底、月初,我找不到简单的月度记录。这有点信息过载,我相信这是一种简单的方法,因此我想寻求一些帮助/指导来找到答案


Tags: pandasdatedt情况rangestart思维offset
1条回答
网友
1楼 · 发布于 2024-05-13 08:43:42

解决方法之一是:

dt_range = pd.date_range(start='2017-12-20', periods=5, freq='MS') + pd.DateOffset(days=18) + pd.tseries.offsets.BusinessDay(1)

输出:

DatetimeIndex(['2018-01-22', '2018-02-20', '2018-03-20', '2018-04-20',
               '2018-05-21'],
              dtype='datetime64[ns]', freq=None)

我只是用date_range(.., freq='MS)进入一个月的第一天,然后再加上18天到第19天。然后我使用this SO post中描述的offsets.BusinessDay来查找下一个工作日

如果你想包括你的开始日期,你必须提前一个月开始。这种行为有点奇怪,但很容易解释

相关问题 更多 >