如何从今天开始检索日期,不包括带有日期时间的周末或 Python 中的 pandas

How to retrieve the date from today excluding weekends with datetime or pandas in Python

我想创建一个函数,它接受一个数字和 returns 今天之前的 {number} 天,不包括周末。

例如,

from datetime import date, timedelta

def get_date(days = 5):
    today = date.today()
    return today - timedelta(days)

当今天是2020-06-11时,应该输出2020-06-04(不包括06-06和06-07)。

我们可以BDay

from pandas.tseries.offsets import BDay

pd.to_datetime('2020-06-11')-BDay(5)

#Timestamp('2020-06-04 00:00:00')

仅使用 Python 的内置库:

from datetime import date, timedelta

def get_date(days = 5):
    today = date.today()
    if days == 0:
        return today

    retval = today
    while days > 0:
        retval -= timedelta(days=1)
        if retval.weekday() not in [5,6]:
            days -= 1
    return retval

https://numpy.org/doc/stable/reference/generated/numpy.busday_offset.html

import numpy as np
from datetime import date

today = date.today()
days = -5
np.busday_offset(today,days)