Python에 공휴일을 알 수 있는 라이브러리가 있어서 간단하게 소개하려고 합니다.
이름하여 holidays 패키지입니다.
github: https://github.com/dr-prodigy/python-holidays
현재 75개국이 넘는 국가들의 휴일을 제공하기 때문에, 타임시리즈 데이터를 분석하거나 에측모델의 성능을 향상시키고자 할 때 또는 앱서비스 등에서 유용하게 사용할 수 있을 것같습니다.
설치 방법은 크게 어렵지 않습니다.
$ pip install holidays
위에 링크를 걸어놓은 홈페이지에 방문하면 대략적인 간단한 사용법은 알 수 있기 때문에, 여기서는 DataFrame을 만드는 코드를 간략히 소개하려고 합니다.
import holidays
import pandas as pd
# holiday_list는 자동 또는 수동으로 생성하시면 됩니다. 여기 예제에서는 2021년 전체 날짜를 생성합니다.
holiday_list = ['2021-01-01', '2021-01-02', ... , '2021-12-31']
# 한국 휴일 객체 생성
kr_holidays = holidays.KR()
# generate holiday table
holiday_df = pd.DataFrame(columns=['ds','holiday'])
holiday_df['ds'] = sorted(date_list)
holiday_df['holiday'] = holiday_df.ds.apply(lambda x: 'holiday' if x in kr_holidays else 'non-holiday')
그러면 아래와 같은 테이블이 생성됩니다.
ds | holiday | |
---|---|---|
0 | 2021-01-01 | holiday |
1 | 2021-01-02 | non-holiday |
... | ... | ... |
364 | 2021-12-31 | non-holiday |
2021년 추석은 양력 기준으로 9월 20일 ~ 22일인데 아래와 같이 테스트해보았습니다.
추석에 한해서 잘 동작하는 것 같습니다.
'2021-09-20' in kr_holidays
True
'2021-09-21' in kr_holidays
True
'2021-09-22' in kr_holidays
True
'2021-09-23' in kr_holidays
False
휴일 목록은 다양한 곳에서 활용될 수 있겠지만, 지금 생각나는 사용처는 아래와 같습니다.
감사합니다! 덕분에 잘 활용하고 있습니다!