Pandas : obtenez des jours ouvrables entre le démarrage et & Date de fin
Vous pouvez utiliser les méthodes suivantes pour obtenir des jours ouvrables chez les pandas :
Méthode 1 : Obtenez les jours ouvrables (exclut tous les week-ends)
business_days = pd.bdate_range('2022-01-01', '2022-12-31')
Méthode 2 : Obtenez les jours ouvrables (exclut tous les week-ends et jours fériés fédéraux)
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)
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Exemple 1 : Obtenez les jours ouvrables (exclut tous les week-ends)
Une façon d’obtenir une liste de jours ouvrables entre deux dates dans les pandas consiste à utiliser la fonction bdate_range() .
Il est à noter que cette fonction compte simplement le nombre de jours entre une date de début et une date de fin, hors week-end.
Par exemple, nous pouvons utiliser la syntaxe suivante pour compter le nombre de jours ouvrés entre le 1/1/2022 et le 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
L’objet appelé business_days contient chaque jour ouvrable entre les dates de début et de fin spécifiées.
Et en utilisant la fonction len() , nous voyons que le nombre total de jours ouvrables entre les dates de début et de fin spécifiées est de 260 .
Exemple 2 : Obtenez les jours ouvrables (exclut tous les week-ends et les jours fériés fédéraux)
Pour obtenir une liste des jours ouvrables entre deux dates dans pandas qui exclut à la fois les week-ends et les jours fériés fédéraux, nous devons utiliser les fonctions du module pandas tseries .
Par exemple, nous pouvons utiliser la syntaxe suivante pour compter le nombre de jours ouvrables (tous les jours hors week-end et jours fériés) entre le 1/1/2022 et le 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
L’objet appelé us_business_days contient tous les jours ouvrables (tous les jours à l’exception des week-ends et des jours fériés) entre les dates de début et de fin spécifiées.
Et en utilisant la fonction len() , nous voyons que le nombre total de jours ouvrables entre les dates de début et de fin spécifiées est de 250 .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment ajouter et soustraire des jours à une date dans Pandas
Comment convertir DateHeure en date dans Pandas
Comment extraire le mois de la date dans Pandas