Panda's: ontvang werkdagen tussen de begin- en einddatum


U kunt de volgende methoden gebruiken om werkdagen in panda’s te krijgen:

Methode 1: Werkdagen ophalen (exclusief alle weekenden)

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

Methode 2: Werkdagen ophalen (exclusief alle weekenden en federale feestdagen)

 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)

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.

Voorbeeld 1: Werkdagen ophalen (exclusief alle weekenden)

Eén manier om een lijst met werkdagen tussen twee datums in panda’s te krijgen, is door de functie bdate_range() te gebruiken.

Let op: deze functie telt eenvoudigweg het aantal dagen tussen een startdatum en een einddatum, met uitzondering van de weekenden.

We kunnen bijvoorbeeld de volgende syntaxis gebruiken om het aantal werkdagen tussen 1-1-2022 en 31-12-2022 te tellen:

 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

Het object met de naam business_days bevat elke werkdag tussen de opgegeven begin- en einddatum.

En met behulp van de functie len() zien we dat het totale aantal werkdagen tussen de opgegeven begin- en einddatum 260 is.

Voorbeeld 2: Werkdagen ophalen (exclusief alle weekenden en federale feestdagen)

Om een lijst met werkdagen tussen twee datums in panda’s te krijgen, waarbij zowel weekends als federale feestdagen zijn uitgesloten, moeten we de modulefuncties van de panda’s tseries gebruiken.

We kunnen bijvoorbeeld de volgende syntaxis gebruiken om het aantal werkdagen (alle dagen met uitzondering van weekends en feestdagen) tussen 1-1-2022 en 31-12-2022 te tellen:

 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

Het object us_business_days bevat alle werkdagen (alle dagen behalve weekends en feestdagen) tussen de opgegeven begin- en einddatum.

En met behulp van de functie len() zien we dat het totale aantal werkdagen tussen de opgegeven begin- en einddatum 250 is.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:

Dagen optellen en aftrekken van een datum in Pandas
Hoe DateTime naar datum te converteren in Pandas
Hoe maand uit datum te extraheren in Panda’s

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert