Pandas: obtenha dias úteis entre a data de início e de término


Você pode usar os seguintes métodos para obter dias úteis em pandas:

Método 1: obtenha dias úteis (excluindo todos os fins de semana)

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

Método 2: Obtenha dias úteis (excluindo todos os fins de semana e feriados federais)

 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)

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: obtenha dias úteis (exclui todos os finais de semana)

Uma maneira de obter uma lista de dias úteis entre duas datas no pandas é usar a função bdate_range() .

Observe que esta função simplesmente conta o número de dias entre uma data de início e uma data de término, excluindo fins de semana.

Por exemplo, podemos usar a seguinte sintaxe para contar o número de dias úteis entre 01/01/2022 e 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

O objeto denominado business_days contém cada dia útil entre as datas de início e término especificadas.

E usando a função len() , vemos que o número total de dias úteis entre as datas de início e término especificadas é 260 .

Exemplo 2: Obtenha dias úteis (excluindo todos os fins de semana e feriados federais)

Para obter uma lista de dias úteis entre duas datas no pandas que exclua fins de semana e feriados federais, precisamos usar as funções do módulo pandas tseries .

Por exemplo, podemos usar a seguinte sintaxe para contar o número de dias úteis (todos os dias, excluindo fins de semana e feriados) entre 01/01/2022 e 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

O objeto denominado us_business_days contém todos os dias úteis (todos os dias, exceto fins de semana e feriados) entre as datas de início e término especificadas.

E usando a função len() , vemos que o número total de dias úteis entre as datas de início e término especificadas é 250 .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como adicionar e subtrair dias de uma data no Pandas
Como converter DateTime em data no Pandas
Como extrair o mês da data no Pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *