Pandalar: başlangıç ve bitiş tarihi arasındaki i̇ş günlerini alın
Pandalarda çalışma günlerini almak için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Çalışma günlerini alın (tüm hafta sonları hariç)
business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ')
Yöntem 2: İş günlerini alın (tüm hafta sonları ve federal tatiller hariç)
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)
Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: İş günlerini alın (tüm hafta sonları hariç)
Pandalarda iki tarih arasındaki iş günlerinin listesini almanın bir yolu bdate_range() işlevini kullanmaktır.
Lütfen bu işlevin, hafta sonları hariç, başlangıç tarihi ile bitiş tarihi arasındaki gün sayısını saydığını unutmayın.
Örneğin, 1/1/2022 ile 31/12/2022 arasındaki iş günü sayısını saymak için aşağıdaki sözdizimini kullanabiliriz:
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 adı verilen nesne, belirtilen başlangıç ve bitiş tarihleri arasındaki her iş gününü içerir.
Ve len() fonksiyonunu kullanarak belirtilen başlangıç ve bitiş tarihleri arasındaki toplam iş günü sayısının 260 olduğunu görüyoruz.
Örnek 2: İş günlerini alın (tüm hafta sonları ve federal tatiller hariç)
Pandalarda hem hafta sonlarını hem de federal tatilleri hariç tutan iki tarih arasındaki iş günlerinin bir listesini almak için pandas tseries modül fonksiyonlarını kullanmamız gerekir.
Örneğin, 1/1/2022 ile 31/12/2022 arasındaki iş günü sayısını (hafta sonları ve tatil günleri hariç tüm günler) saymak için aşağıdaki sözdizimini kullanabiliriz:
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 adı verilen nesne, belirtilen başlangıç ve bitiş tarihleri arasındaki tüm iş günlerini (hafta sonları ve tatil günleri hariç tüm günleri) içerir.
Ve len() fonksiyonunu kullanarak belirtilen başlangıç ve bitiş tarihleri arasındaki toplam iş günü sayısının 250 olduğunu görüyoruz.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar’da bir tarihe gün ekleme ve çıkarma
Pandalar’da DateTime’ı tarihe nasıl dönüştürebilirim?
Pandalar’da tarihten ay nasıl çıkarılır