在 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() 函式對於需要計算兩個日期之間工作日的應用程式很有用。它可以有效地用於銀行的利息計算、債券期限或股票市場的交易期限。它還可以用於專案管理應用程式,以計算完成任務或專案所需的工作日數。

更新於: 2023-08-23

211 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.