使用 "business day weekly" 频率构建日期向量。

Build a date vector using a "business day weekly" frequency.

下一行生成一个频率为每周的日期向量,使用星期日作为每周的 'reported' 日期。

date_vector=pd.date_range(start='12/31/2006', end='01/31/2007', freq='W')

结果如下:

[Timestamp('2006-12-31 00:00:00', freq='W-SUN'), Timestamp('2007-01-07 00:00:00', freq='W-SUN'), Timestamp('2007-01-14 00:00:00', freq='W-SUN'), Timestamp('2007-01-21 00:00:00', freq='W-SUN'), Timestamp('2007-01-28 00:00:00', freq='W-SUN')]

如您所知,报告的每个日期都是星期日。但我希望它是每个星期五(工作周结束时)。在 pandas 中可能有类似的东西吗?我在 Pandas 文档中搜索了 date_range (here) 的不同频率,但找不到类似的东西。

我提出的解决方案是一个列表理解,其中对于这个列表的每个元素,我会弄清楚它是否是星期日,如果是这样的话,应用 -2 的 timedelta 将其延迟到星期五。但不确定那是否是最有效的,我想看看这里是否有人可以提出更好的建议。

感谢您的宝贵时间!

您可以使用 freq='W-Fri'

date_vector=pd.date_range(start='12/31/2006', end='01/31/2007', freq='W-Fri')
date_vector
Out[1228]: DatetimeIndex(['2007-01-05', '2007-01-12', '2007-01-19', '2007-01-26'], dtype='datetime64[ns]', freq='W-FRI')

只需使用 'W-FRI' 即可 freq:

date_vector=pd.date_range(start='12/31/2006', end='01/31/2007', freq='W-FRI')

结果:

DatetimeIndex(['2007-01-05', '2007-01-12', '2007-01-19', '2007-01-26'], dtype='datetime64[ns]', freq='W-FRI')

检查 this 文档。