Calendário¶
Além da Classe Holidays, que é possível definir feriados para um dado ano, existe também a classe Calendario, que vista agregar mais de um conjunto de anos.
In [ ]:
Copied!
#!pip3 install brazilian-holidays
#!pip3 install brazilian-holidays
In [1]:
Copied!
from paths import data_path
import brazilian_holidays
from paths import data_path
import brazilian_holidays
Inicialmente instanciamos o objeto.
In [2]:
Copied!
# Resultados
calendario = brazilian_holidays.Calendario()
calendario
# Resultados
calendario = brazilian_holidays.Calendario()
calendario
Out[2]:
Não existem feriados listados
In [3]:
Copied!
holidays_25 = brazilian_holidays.Holidays(year=2025)
holidays_25.add_all()
holidays_26 = brazilian_holidays.Holidays(year=2026)
holidays_26.add_all()
holidays_25 = brazilian_holidays.Holidays(year=2025)
holidays_25.add_all()
holidays_26 = brazilian_holidays.Holidays(year=2026)
holidays_26.add_all()
E adicionamos...
In [4]:
Copied!
calendario.add(holidays_25)
calendario.add(holidays_26)
# Results
calendario
calendario.add(holidays_25)
calendario.add(holidays_26)
# Results
calendario
Out[4]:
Existe(m) 40 feriado(s) listado(s): Confraternização Universal Aniversário da Cidade de São Paulo Carnaval (seg) Carnaval (ter) Carnaval (qua) Domingo de Ramos Endoenças Sexta-feira Santa Páscoa Tiradentes Dia do Trabalho Corpus Christi Independência do Brasil Dia de Nossa Senhora Aparecida Dia de Finados Proclamação da República Dia da Consciência Negra Véspera de Natal Natal Reveillon Confraternização Universal Aniversário da Cidade de São Paulo Carnaval (seg) Carnaval (ter) Carnaval (qua) Domingo de Ramos Endoenças Sexta-feira Santa Páscoa Tiradentes Dia do Trabalho Corpus Christi Independência do Brasil Dia de Nossa Senhora Aparecida Dia de Finados Proclamação da República Dia da Consciência Negra Véspera de Natal Natal Reveillon
Resultados¶
Acim como no objeto Holidays, também é possível ver os resultados de três maneiras distintas:
- Em formato de tabela
Dataframe(do pandas). - Em formato de lista, contendo apenas as datas, no formato
datetime - Em formato de lista, contendo apenas as datas, no formato
date
In [5]:
Copied!
# Create Table
df_holidays = calendario.create_table()
# Results
df_holidays.info()
df_holidays.head(2)
# Create Table
df_holidays = calendario.create_table()
# Results
df_holidays.info()
df_holidays.head(2)
<class 'pandas.core.frame.DataFrame'> RangeIndex: 40 entries, 0 to 39 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 date 40 non-null datetime64[ns] 1 dia_semana 40 non-null object 2 name 40 non-null object 3 holiday 40 non-null bool 4 type 40 non-null object 5 obs 40 non-null object dtypes: bool(1), datetime64[ns](1), object(4) memory usage: 1.7+ KB
Out[5]:
| date | dia_semana | name | holiday | type | obs | |
|---|---|---|---|---|---|---|
| 0 | 2025-01-01 | quarta-feira | Confraternização Universal | True | Fixo | |
| 1 | 2025-01-25 | sábado | Aniversário da Cidade de São Paulo | True | Fixo |
Salva tabela
In [7]:
Copied!
df_holidays.to_csv(
path_or_buf=data_path / 'calendario.csv',
index=False,
)
df_holidays.to_csv(
path_or_buf=data_path / 'calendario.csv',
index=False,
)
É possível obter os feriados em formato datetime.
In [8]:
Copied!
calendario.create_list(tipo='datetime')
calendario.create_list(tipo='datetime')
Existe(m) 40 feriado(s)
Out[8]:
[datetime.datetime(2025, 1, 1, 0, 0), datetime.datetime(2025, 1, 25, 0, 0), datetime.datetime(2025, 3, 3, 0, 0), datetime.datetime(2025, 3, 4, 0, 0), datetime.datetime(2025, 3, 5, 0, 0), datetime.datetime(2025, 4, 13, 0, 0), datetime.datetime(2025, 4, 17, 0, 0), datetime.datetime(2025, 4, 18, 0, 0), datetime.datetime(2025, 4, 20, 0, 0), datetime.datetime(2025, 4, 21, 0, 0), datetime.datetime(2025, 5, 1, 0, 0), datetime.datetime(2025, 6, 19, 0, 0), datetime.datetime(2025, 9, 7, 0, 0), datetime.datetime(2025, 10, 12, 0, 0), datetime.datetime(2025, 11, 2, 0, 0), datetime.datetime(2025, 11, 15, 0, 0), datetime.datetime(2025, 11, 20, 0, 0), datetime.datetime(2025, 12, 24, 0, 0), datetime.datetime(2025, 12, 25, 0, 0), datetime.datetime(2025, 12, 31, 0, 0), datetime.datetime(2026, 1, 1, 0, 0), datetime.datetime(2026, 1, 25, 0, 0), datetime.datetime(2026, 2, 16, 0, 0), datetime.datetime(2026, 2, 17, 0, 0), datetime.datetime(2026, 2, 18, 0, 0), datetime.datetime(2026, 3, 29, 0, 0), datetime.datetime(2026, 4, 2, 0, 0), datetime.datetime(2026, 4, 3, 0, 0), datetime.datetime(2026, 4, 5, 0, 0), datetime.datetime(2026, 4, 21, 0, 0), datetime.datetime(2026, 5, 1, 0, 0), datetime.datetime(2026, 6, 4, 0, 0), datetime.datetime(2026, 9, 7, 0, 0), datetime.datetime(2026, 10, 12, 0, 0), datetime.datetime(2026, 11, 2, 0, 0), datetime.datetime(2026, 11, 15, 0, 0), datetime.datetime(2026, 11, 20, 0, 0), datetime.datetime(2026, 12, 24, 0, 0), datetime.datetime(2026, 12, 25, 0, 0), datetime.datetime(2026, 12, 31, 0, 0)]
É possível obter os feriados em formato date, ideal para uso no prophet.
In [9]:
Copied!
calendario.create_list(tipo='date')
calendario.create_list(tipo='date')
Existe(m) 40 feriado(s)
Out[9]:
[datetime.date(2025, 1, 1), datetime.date(2025, 1, 25), datetime.date(2025, 3, 3), datetime.date(2025, 3, 4), datetime.date(2025, 3, 5), datetime.date(2025, 4, 13), datetime.date(2025, 4, 17), datetime.date(2025, 4, 18), datetime.date(2025, 4, 20), datetime.date(2025, 4, 21), datetime.date(2025, 5, 1), datetime.date(2025, 6, 19), datetime.date(2025, 9, 7), datetime.date(2025, 10, 12), datetime.date(2025, 11, 2), datetime.date(2025, 11, 15), datetime.date(2025, 11, 20), datetime.date(2025, 12, 24), datetime.date(2025, 12, 25), datetime.date(2025, 12, 31), datetime.date(2026, 1, 1), datetime.date(2026, 1, 25), datetime.date(2026, 2, 16), datetime.date(2026, 2, 17), datetime.date(2026, 2, 18), datetime.date(2026, 3, 29), datetime.date(2026, 4, 2), datetime.date(2026, 4, 3), datetime.date(2026, 4, 5), datetime.date(2026, 4, 21), datetime.date(2026, 5, 1), datetime.date(2026, 6, 4), datetime.date(2026, 9, 7), datetime.date(2026, 10, 12), datetime.date(2026, 11, 2), datetime.date(2026, 11, 15), datetime.date(2026, 11, 20), datetime.date(2026, 12, 24), datetime.date(2026, 12, 25), datetime.date(2026, 12, 31)]