Pandas: erhalten sie werktage zwischen start- und enddatum
Sie können die folgenden Methoden verwenden, um Arbeitstage in Pandas zu erhalten:
Methode 1: Arbeitstage ermitteln (alle Wochenenden ausgenommen)
business_days = pd. bdate_range (' 2022-01-01 ', ' 2022-12-31 ')
Methode 2: Werktage abrufen (ausgenommen alle Wochenenden und Feiertage)
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)
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.
Beispiel 1: Werktage abrufen (alle Wochenenden ausgenommen)
Eine Möglichkeit, in Pandas eine Liste der Werktage zwischen zwei Daten abzurufen, ist die Verwendung der Funktion bdate_range() .
Bitte beachten Sie, dass diese Funktion lediglich die Anzahl der Tage zwischen einem Startdatum und einem Enddatum zählt, Wochenenden ausgenommen.
Beispielsweise können wir die folgende Syntax verwenden, um die Anzahl der Werktage zwischen dem 1.1.2022 und dem 31.12.2022 zu zählen:
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
Das Objekt namens business_days enthält jeden Geschäftstag zwischen dem angegebenen Start- und Enddatum.
Und mit der Funktion len() sehen wir, dass die Gesamtzahl der Arbeitstage zwischen dem angegebenen Start- und Enddatum 260 beträgt.
Beispiel 2: Werktage abrufen (ausgenommen alle Wochenenden und Feiertage)
Um eine Liste der Werktage zwischen zwei Daten in Pandas zu erhalten, die sowohl Wochenenden als auch Bundesfeiertage ausschließt, müssen wir die Funktionen des Pandas- Tseries- Moduls verwenden.
Beispielsweise können wir die folgende Syntax verwenden, um die Anzahl der Werktage (alle Tage außer Wochenenden und Feiertagen) zwischen dem 1.1.2022 und dem 31.12.2022 zu zählen:
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
Das Objekt namens us_business_days enthält alle Werktage (alle Tage außer Wochenenden und Feiertagen) zwischen dem angegebenen Start- und Enddatum.
Und mit der Funktion len() sehen wir, dass die Gesamtzahl der Arbeitstage zwischen dem angegebenen Start- und Enddatum 250 beträgt.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So addieren und subtrahieren Sie Tage zu einem Datum in Pandas
So konvertieren Sie DateTime in Pandas in ein Datum
So extrahieren Sie den Monat aus dem Datum in Pandas