الباندا: احصل على أيام العمل بين تاريخ البدء والانتهاء
يمكنك استخدام الطرق التالية للحصول على أيام العمل في الباندا:
الطريقة الأولى: الحصول على أيام العمل (باستثناء جميع عطلات نهاية الأسبوع)
business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ')
الطريقة الثانية: الحصول على أيام العمل (باستثناء جميع عطلات نهاية الأسبوع والعطلات الفيدرالية)
from pandas. tseries . holiday import USFederalHolidayCalendar
from pandas. tseries . offsets import CustomBusinessDay
#define US business days
us_bus = CustomBusinessDay(calendar=USFederalHolidayCalendar())
#get all business days between certain start and end dates
us_business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ', freq=us_bus)
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.
مثال 1: الحصول على أيام العمل (باستثناء جميع عطلات نهاية الأسبوع)
إحدى الطرق للحصول على قائمة بأيام العمل بين تاريخين في الباندا هي استخدام الدالة bdate_range() .
يرجى ملاحظة أن هذه الوظيفة تحسب ببساطة عدد الأيام بين تاريخ البدء وتاريخ الانتهاء، باستثناء عطلات نهاية الأسبوع.
على سبيل المثال، يمكننا استخدام الصيغة التالية لحساب عدد أيام العمل بين 1/1/2022 و31/12/2022:
import pandas as pd
#get all business days between certain start and end dates
business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ')
#view first ten business days
print (business_days[0:10])
DatetimeIndex(['2022-01-03', '2022-01-04', '2022-01-05', '2022-01-06',
'2022-01-07', '2022-01-10', '2022-01-11', '2022-01-12',
'2022-01-13', '2022-01-14'],
dtype='datetime64[ns]', freq='B')
#view total number of business days
len (business_days)
260
يحتوي الكائن المسمى Business_days على كل يوم عمل بين تاريخي البدء والانتهاء المحددين.
وباستخدام الدالة len() نرى أن إجمالي عدد أيام العمل بين تاريخي البدء والانتهاء المحددين هو 260 .
مثال 2: الحصول على أيام العمل (باستثناء جميع عطلات نهاية الأسبوع والعطلات الفيدرالية)
للحصول على قائمة بأيام العمل بين تاريخين في الباندا التي تستثني عطلات نهاية الأسبوع والعطلات الفيدرالية، نحتاج إلى استخدام وظائف وحدة سلسلة الباندا.
على سبيل المثال، يمكننا استخدام الصيغة التالية لحساب عدد أيام العمل (جميع الأيام باستثناء عطلات نهاية الأسبوع والعطلات) بين 1/1/2022 و31/12/2022:
from pandas. tseries . holiday import USFederalHolidayCalendar
from pandas. tseries . offsets import CustomBusinessDay
#define US business days
us_bus = CustomBusinessDay(calendar=USFederalHolidayCalendar())
#get all business days between certain start and end dates
us_business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ', freq=us_bus)
#view first ten business days
print (us_business_days[0:10])
DatetimeIndex(['2022-01-03', '2022-01-04', '2022-01-05', '2022-01-06',
'2022-01-07', '2022-01-10', '2022-01-11', '2022-01-12',
'2022-01-13', '2022-01-14'],
dtype='datetime64[ns]', freq='C')
#view total number of business days
len (us_business_days)
250
يحتوي الكائن المسمى us_business_days على كافة أيام العمل (جميع الأيام باستثناء عطلات نهاية الأسبوع والعطلات الرسمية) بين تاريخي البدء والانتهاء المحددين.
وباستخدام الدالة len() نرى أن إجمالي عدد أيام العمل بين تاريخي البدء والانتهاء المحددين هو 250 .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
كيفية إضافة وطرح أيام من تاريخ في الباندا
كيفية تحويل DateTime إلى تاريخ في Pandas
كيفية استخراج الشهر من التاريخ في الباندا