Giả sử bạn cần tính số ngày làm việc (business days - thứ 2 đến thứ 6) giữa hai ngày cho trước.
Giải pháp 1: Sử dụng pd.bdate_range() và len()
- Định nghĩa hàm
business_days(). - Sử dụng
pd.bdate_range()với ngày bắt đầu và kết thúc để tạo chuỗi ngày làm việc. - Tính độ dài của chuỗi đó bằng
len().
dates = pd.bdate_range('2020-01-01', '2020-02-02')
len(dates)
Ví dụ
import pandas as pd
def business_days():
dates = pd.bdate_range('2020-01-01', '2020-02-02')
print("Tổng số ngày làm việc:", len(dates))
business_days()
Kết quả
Tổng số ngày làm việc: 23
Giải pháp 2: Dùng vòng lặp for đếm thủ công
- Tạo chuỗi ngày làm việc như giải pháp 1.
- Khởi tạo biến
count = 0. - Duyệt qua từng ngày trong chuỗi và tăng
countlên 1.
count = 0
for i in dates:
count = count + 1
Ví dụ
import pandas as pd
def business_days():
dates = pd.bdate_range('2020-01-01', '2020-02-02')
count = 0
for i in dates:
count = count + 1
print("Tổng số ngày làm việc:", count)
business_days()
Kết quả
Tổng số ngày làm việc: 23
Lưu ý: Giải pháp 1 ngắn gọn và hiệu quả hơn. pd.bdate_range() tự động loại bỏ thứ 7, chủ nhật. Bạn cũng có thể tùy chỉnh ngày nghỉ lễ bằng tham số holidays.