평일과 주말 구분하기
—# 평일과 주말 구분하는 코드
생각보다 분석할 때 평일과 주말을 구분지을 때가 많다. 그래서 프로젝트 진행했을 때 사용했던 코드를 적고자 한다.
먼저 필요한 패키지들이다.
import pandas as pd
import xmltodict
import requests
import json
import numpy as np
이 코드는 2017년 이후로 평일 주말을 구분지을 수 있게 해준다. 또한 여기서 주말에 공휴일이 포함된다. 공공데이터포탈에서 한국천문연구원_특일 정보의 오픈 API를 이용하여 진행한다.
def holidays(key):
year_list=[]
for year in range(2017,datetime.now().year+1):
year_list.append((str(year)))
holidays = pd.DataFrame(columns=['date','name'])
date_list = []
name_list = []
for year_ in year_list:
for month in ['01','02','03','04','05','06','07','08','09','10','11','12']:
url = "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo?solYear="+year_+"&solMonth="+month+"&ServiceKey="+key
content = requests.get(url).content
dict = xmltodict.parse(content)
jsonString = json.dumps(dict['response']['body'], ensure_ascii = False)
jsonObj = json.loads(jsonString)
if jsonObj['items'] == None:
continue
holi_dict = jsonObj['items']['item']
if type(holi_dict) == list:
for i in range(len(holi_dict)):
date_list.append(holi_dict[i]['locdate'])
name_list.append(holi_dict[i]['dateName'])
else:
date_list.append(holi_dict['locdate'])
name_list.append(holi_dict['dateName'])
date_arr = np.array(date_list)
name_arr = np.array(name_list)
holidays['date'] = date_arr
holidays['name'] = name_arr
holidays['date'] = pd.to_datetime(holidays['date'])
holidays['str_date'] = holidays['date'].apply(lambda x: x.strftime('%Y-%m-%d'))
return holidays.str_date
댓글남기기