在 NumPy 中查找给定月份的工作日数量
NumPy 是 Python 中一个用于数值计算、科学计算、数据分析和机器学习应用的开源库。该库具有强大的数组方法和工具,可以执行向量和矩阵运算。
由于 NumPy 不是默认 Python 库的一部分,因此您必须手动安装 NumPy 模块。可以使用 Python 包管理器 pip 通过执行以下命令来实现此目的:
pip install numpy
我们将使用 NumPy 的busday_count()函数来计算所需的工作日数量。这将计算两个特定日期之间工作日(周一至周五)的数量。
语法
numpy.busday_count(startdate, enddate, weekmask, holidays)
返回值 - 整数(天数)
开始日期 - 您要计算有效天数的日期范围(包含)。这应该是一个“YYYY-MM-DD”格式的字符串。
结束日期 - 您要计算有效天数的日期范围(不包含)。这也应该是一个“YYYY-MM-DD”格式的字符串。
Weekmask - 这是一个可选的字符串参数,表示一周中的几天。默认情况下,将其设置为周一至周五。
节假日 - 日期字符串数组,标记为节假日,并将其从计数中排除。这也是一个可选参数。
示例 1
以下示例使用 NumPy 和 datetime 模块计算给定月份中的工作日(周一至周五)数量。
算法
导入所需的 numpy 库。
将 startdate 和 enddate 参数传递给 busday_count() 函数。
打印工作日数量。
import numpy as np # get the number of days in the month num_days = np.busday_count('2023-02-01', '2023-03-01') print(f"There are {num_days} weekdays in 2023 February")
输出
There are 20 weekdays in 2023 February
示例 2
以下示例计算 2 月份的工作日数量,前提是它是闰年。我们考虑 2024 年,它是闰年。
import numpy as np # get the number of days in a leap year month num_days = np.busday_count('2024-02-01', '2024-03-01', weekmask = 'Mon Tue Wed Thu Fri') print(f"There are {num_days} weekdays in 2024 February")
输出
There are 21 weekdays in 2024 February
示例 3
以下示例计算不包括法定假期的工作日数量。
算法
导入 numpy 库。
创建 1 月份节假日列表。
计算工作日数量并将值存储在 num_days 变量中,并将 holidays 列表与函数一起传递。
打印值。
import numpy as np holidays = ['2023-01-01', '2023-01-26'] # get the number of days in the month num_days = np.busday_count('2023-01-01', '2023-02-01', holidays = holidays) print(f"Weekdays in January 2023 excluding the national holidays are: {num_days}")
输出
Weekdays in January 2023 excluding the national holidays are: 21
注意 -如果不排除法定假日,工作日数量为 22。由于 1 月 1 日是星期日,因此不计为工作日,因此为 21 个工作日,而不是 (22-2=20) 20 个工作日。
holidays 参数将采用字符串或日期列表作为其值。它还会检查指定的法定假日是否为工作日。
结论
busday_count() 函数对于需要计算两个日期之间工作日的应用程序很有用。它可以有效地用于银行的利息计算、债券期限或股票市场的交易期限。它还可以用于项目管理应用程序,以计算完成任务或项目所需的工作日数。