在 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() 函式對於需要計算兩個日期之間工作日的應用程式很有用。它可以有效地用於銀行的利息計算、債券期限或股票市場的交易期限。它還可以用於專案管理應用程式,以計算完成任務或專案所需的工作日數。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP