NumPy 查找给定月份的工作日数量

NumPy 查找给定月份的工作日数量

NumPy是Python中的开源库,用于数值计算、科学计算、数据分析和机器学习应用。该库具有强大的数组方法和工具,可以执行向量和矩阵操作。

由于NumPy不是默认的Python库组件,因此您必须手动安装NumPy模块。可以使用Python软件包管理器pip来执行以下命令进行安装 –

pip install numpy

我们将使用NumPy的 busday_count() 函数来计算所需的工作日数。这将计算两个特定日期之间的工作日数(星期一至星期五)。

语法

numpy.busday_count(startdate, enddate, weekmask, holidays)

返回值 – 整数(天数)

  • Startdate - 要计算有效天数的日期范围(包含)。这应该是一个格式为“YYYY-MM-DD”的字符串。

  • Enddate - 要计算有效天数的日期范围(不包含)。这也应该是一个格式为“YYYY-MM-DD”的字符串。

  • Weekmask - 这是一个可选的 字符串 参数,代表一个星期的哪些天。默认情况下,设置为周一到周五。

  • Holidays - 包含标记为假日并要排除在计数之外的日期字符串的数组。这也是一个可选参数。

示例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 库。

  • 创建一个包含一月份假日的列表。

  • 计算工作日数量并将该值存储在 num_days 变量中,同时传递假日列表给函数。

  • 打印值。

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个工作日。

假期参数可以使用字符串或日期列表作为其值。 它还检查指定的国家假期是否为工作日。

结论

busday_count()函数对于需要计算两个日期之间的工作日的应用非常有用。它可以在利息计算、银行债券期限或甚至股票市场的交易期间高效使用。它还可以用于项目管理应用程序中,以计算完成任务或项目所需的工作日数量。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程