Pandas: dapatkan hari kerja antara tanggal mulai dan tanggal berakhir


Anda dapat menggunakan metode berikut untuk mendapatkan hari kerja di pandas:

Metode 1: Dapatkan hari kerja (tidak termasuk seluruh akhir pekan)

 business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ')

Metode 2: Dapatkan hari kerja (tidak termasuk semua akhir pekan dan hari libur federal)

 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)

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.

Contoh 1: Dapatkan hari kerja (tidak termasuk seluruh akhir pekan)

Salah satu cara untuk mendapatkan daftar hari kerja antara dua tanggal di panda adalah dengan menggunakan fungsi bdate_range() .

Harap dicatat bahwa fungsi ini hanya menghitung jumlah hari antara tanggal mulai dan tanggal akhir, tidak termasuk akhir pekan.

Misalnya, kita dapat menggunakan sintaks berikut untuk menghitung jumlah hari kerja antara 1/1/2022 dan 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

Objek bernama business_days berisi setiap hari kerja antara tanggal mulai dan tanggal akhir yang ditentukan.

Dan dengan menggunakan fungsi len() , kita melihat bahwa jumlah hari kerja antara tanggal mulai dan tanggal akhir yang ditentukan adalah 260 .

Contoh 2: Dapatkan hari kerja (tidak termasuk semua akhir pekan dan hari libur federal)

Untuk mendapatkan daftar hari kerja antara dua tanggal di panda yang tidak termasuk akhir pekan dan hari libur federal, kita perlu menggunakan fungsi modul pandas tseries .

Misalnya, kita dapat menggunakan sintaks berikut untuk menghitung jumlah hari kerja (semua hari kecuali akhir pekan dan hari libur) antara 1/1/2022 dan 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

Objek bernama us_business_days berisi semua hari kerja (semua hari kecuali akhir pekan dan hari libur) antara tanggal mulai dan akhir yang ditentukan.

Dan dengan menggunakan fungsi len() , kita melihat bahwa jumlah hari kerja antara tanggal mulai dan tanggal akhir yang ditentukan adalah 250 .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Cara menambah dan mengurangi hari dari tanggal di Pandas
Bagaimana cara mengonversi DateTime ke tanggal di Pandas
Cara mengekstrak bulan dari tanggal di Pandas

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *