이전의 실습에서 했던 대로 SQLite에서 import를 이용하여 csv파일을 import.
위키독스의 가이드를 따라서 중구난방인 휴점일의 데이터를 정제
위키독스 작성 이후로 데이터가 바뀌어, 추가로 해주어야 하는 부분도 있었다. 이렇게 보면 데이터를 모으는 데도 요령이 많이 필요한 점과 추후에 어떤 경우라도 항시 (어떤 용도로 사용될지 모르는 상태라도) 데이터 종류를 정규화하는 것이 얼마나 중요한지 알 수 있었다.
select
distinct case
when(휴점일 in ('0', '-', 'X', 'x', 'N', '무', '무휴', '부', '없음', '없 음', '연중', '연중 무휴', '연중무휴', '연중무휴(주중08~20시, 주말09~18시 운영)', '연중휴무', '충전기 운영 휴무일 없음', '해당없음')) then '연중무휴'
when(휴점일 in ('설날, 추석 당일','명절당일')) then '명절당일'
when(휴점일 in ('국경일,휴일','법정 공휴일')) then '공휴일'
when(휴점일 in ('매주일요일','일요일')) then '일요일'
when(휴점일 in ('매주 토,일','매주 토.일', '주말', '토,일', '토일', '토,일요일', '토요일, 일요일')) then '토,일요일'
when(휴점일 in ('토, 일 휴일 이용불가', '매주 토/일요일 공휴일', '법정공휴일, 토요일, 일요일', '주말및공휴일', '주말 및 공휴일', '주말, 공휴일', '토,일,공휴일', '토, 일, 공휴일', '평일(주말, 공휴일 휴무)')) then '토,일,공휴일'
when(휴점일 in ('매월2, 4주 수요일','매월2, 4주일요일','2주, 4주 일요일', '2주,4주 일요일', '2,4째주 일요일', '2,4째 일요일', '2, 4째주 일요일', '2/4주 일요일', '둘째, 넷째 일요일', '둘째,넷째 일요일', '둘째,넷째일요일', '매월2,4주일요일', '매월 2,4주 일요일', '매월2, 4째주 일요일', '매월2/4주일요일', '매월 2, 4주 일요일', '매월2,4주 일요일', '매주 2주 일요일+4주 일요일', '매월 둘째, 넷째주 일요일')) then '2,4주 일요일'
when(휴점일 in ('둘째,넷째 수요일', '매월 2,4주 수요일', '매월2,4주 수요일', '매월2,4주수요일', '매월 둘째, 넷째 수요일 휴무')) then '2,4주 수요일'
when(휴점일 in ('둘째,넷째 월요일')) then '2,4주 월요일'
when(휴점일 in ('매월 4주째 월요일')) then '4주 월요일'
when(휴점일 in ('매월세째주월요일')) then '3주 월요일'
when(휴점일 in ('일·공휴일')) then '일요일, 공휴일'
when(휴점일 in ('마트휴무일', '마트휴점일', '휴무일')) then '휴점일'
when(휴점일 in ('24시간운영', '고객외 이용불가', '기타', '두번째금요일, 네번째토요일 휴무', '매년 추석 및 구정', '별도확인', '사용가능', '사용불가', 'o', '업무시간내', '영업시간내', '일요일, 토요일15:30', '입주민외 이용불가', '입주자외 이용불가', '자체운영', '주중,주말', '주중,주말', '평일')) then '기타'
else 휴점일
end 휴점일2
from 전국전기차충전소표준데이터
order by 휴점일2
alter table 전국전기차충전소표준데이터 add column 휴점일2 text
update 전국전기차충전소표준데이터
set 휴점일2 = (select
case
when(휴점일 in ('0', '-', 'X', 'x', 'N', '무', '무휴', '부', '없음', '없 음', '연중', '연중 무휴', '연중무휴', '연중무휴(주중08~20시, 주말09~18시 운영)', '연중휴무', '충전기 운영 휴무일 없음', '해당없음')) then '연중무휴'
when(휴점일 in ('설날, 추석 당일','명절당일')) then '명절당일'
when(휴점일 in ('국경일,휴일','법정 공휴일')) then '공휴일'
when(휴점일 in ('매주일요일','일요일')) then '일요일'
when(휴점일 in ('매주 토,일','매주 토.일', '주말', '토,일', '토일', '토,일요일', '토요일, 일요일')) then '토,일요일'
when(휴점일 in ('토, 일 휴일 이용불가', '매주 토/일요일 공휴일', '법정공휴일, 토요일, 일요일', '주말및공휴일', '주말 및 공휴일', '주말, 공휴일', '토,일,공휴일', '토, 일, 공휴일', '평일(주말, 공휴일 휴무)')) then '토,일,공휴일'
when(휴점일 in ('매월2, 4주 수요일','매월2, 4주일요일','2주, 4주 일요일', '2주,4주 일요일', '2,4째주 일요일', '2,4째 일요일', '2, 4째주 일요일', '2/4주 일요일', '둘째, 넷째 일요일', '둘째,넷째 일요일', '둘째,넷째일요일', '매월2,4주일요일', '매월 2,4주 일요일', '매월2, 4째주 일요일', '매월2/4주일요일', '매월 2, 4주 일요일', '매월2,4주 일요일', '매주 2주 일요일+4주 일요일', '매월 둘째, 넷째주 일요일')) then '2,4주 일요일'
when(휴점일 in ('둘째,넷째 수요일', '매월 2,4주 수요일', '매월2,4주 수요일', '매월2,4주수요일', '매월 둘째, 넷째 수요일 휴무')) then '2,4주 수요일'
when(휴점일 in ('둘째,넷째 월요일')) then '2,4주 월요일'
when(휴점일 in ('매월 4주째 월요일')) then '4주 월요일'
when(휴점일 in ('매월세째주월요일')) then '3주 월요일'
when(휴점일 in ('일·공휴일')) then '일요일, 공휴일'
when(휴점일 in ('마트휴무일', '마트휴점일', '휴무일')) then '휴점일'
when(휴점일 in ('24시간운영', '고객외 이용불가', '기타', '두번째금요일, 네번째토요일 휴무', '매년 추석 및 구정', '별도확인', '사용가능', '사용불가', 'o', '업무시간내', '영업시간내', '일요일, 토요일15:30', '입주민외 이용불가', '입주자외 이용불가', '자체운영', '주중,주말', '주중,주말', '평일')) then '기타'
else 휴점일
end)
간단한 실습이었지만 이 실습을 통해 데이터를 모을 때 정규화가 얼마나 중요한지 알게되었고, 지루한 듯 보이지만 데이터 정제가 제대로 이루어 져야 올바른 결과를 가지고 데이터 시각화나 각종 활용을 할 수 있겠다는 것을 배웠다.