import pandas as pd
from datetime import date
# import
import holidays
# use the code of Peru(PE) in 2022
pe_holidays = holidays.PE(years = 2022)
sorted_holidays = sorted(pe_holidays)
# We verify the holidays of Peru
for date in sorted_holidays:
print(date, pe_holidays[date])
2022-01-01 Año Nuevo [New Year's Day]
2022-04-14 Jueves Santo [Maundy Thursday]
2022-04-15 Viernes Santo [Good Friday]
2022-04-16 Sábado de Gloria [Holy Saturday]
2022-04-17 Domingo de Resurrección [Easter Sunday]
2022-05-01 Día del Trabajo [Labour Day]
2022-06-29 San Pedro y San Pablo [Feast of Saints Peter and Paul]
2022-07-28 Día de la Independencia [Independence Day]
2022-07-29 Día de las Fuerzas Armadas y la Policía del Perú
2022-08-30 Día de Santa Rosa de Lima
2022-10-08 Combate Naval de Angamos [Battle of Angamos]
2022-11-01 Día de Todos Los Santos [All Saints Day]
2022-12-08 Inmaculada Concepción [Immaculate Conception]
2022-12-25 Navidad [Christmas]
# create array of tuples (date, name_holiday)
arr = [(date, pe_holidays[date]) for date in pe_holidays]
# create our dataframe
df_holidays_pe = pd.DataFrame(arr, columns = ['date', 'name_holiday'])
# change column 'date' to datetime type
df_holidays_pe['date'] = pd.to_datetime(df_holidays_pe['date'])
# select only the name of the day
df_holidays_pe['date'] = df_holidays_pe['date'].dt.day_name()
# change the name of the column 'date'
df_holidays_pe.rename(columns = {'date': 'day_name'}, inplace = True)
df_holidays_pe
day_nameobject
Saturday21.4%
Thursday21.4%
4 others57.1%
name_holidayobject
Año Nuevo [New Year's Day]7.1%
San Pedro y San Pablo [Feast of Saints Peter and Paul]7.1%
12 others85.7%
0
Saturday
Año Nuevo [New Year's Day]
1
Wednesday
San Pedro y San Pablo [Feast of Saints Peter and Paul]
2
Thursday
Día de la Independencia [Independence Day]
3
Friday
Día de las Fuerzas Armadas y la Policía del Perú
4
Tuesday
Día de Santa Rosa de Lima
5
Saturday
Combate Naval de Angamos [Battle of Angamos]
6
Thursday
Jueves Santo [Maundy Thursday]
7
Friday
Viernes Santo [Good Friday]
8
Saturday
Sábado de Gloria [Holy Saturday]
9
Sunday
Domingo de Resurrección [Easter Sunday]
# group by data = name_of_day
df_holidays_pe = df_holidays_pe.groupby('day_name').count().sort_values(by = 'name_holiday', ascending = False)
# rename the column name
df_holidays_pe.rename(columns = {'name_holiday': 'count_holidays'}, inplace = True)
df_holidays_pe
count_holidaysint64
Saturday
3
Sunday
3
Thursday
3
Friday
2
Tuesday
2
Wednesday
1