【问题标题】:Build a date vector using a "business day weekly" frequency.使用“每周工作日”频率构建日期向量。
【发布时间】:2018-08-31 02:06:16
【问题描述】:

以下行生成一个具有每周频率的日期向量,使用星期日作为每周的“报告”日期。

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 文档中搜索了 date_range (here) 中可用的不同频率,但找不到类似的东西。

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

感谢您宝贵的时间!

【问题讨论】:

    标签: python python-3.x pandas date-range


    【解决方案1】:

    您可以使用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')
    

    【讨论】:

      【解决方案2】:

      只需将'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 文档。

      【讨论】:

        猜你喜欢
        • 2017-05-28
        • 1970-01-01
        • 1970-01-01
        • 2019-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多