mini project part.2 주제 : API - KOSIS의 '미분양주택현황' 조회 수집
Kosis - 미분양주택현황
(https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1YL202001E&vw_cd=MT_GTITLE01&list_id=107&seqNo=&lang_mode=ko&language=kor&obj_var_id=&itm_id=&conn_path=MT_GTITLE01)
주제 선정 이유 : 서울시의 미분양 주택 현황을 '지역구' 기준, 3개년도를 비교 분석하는 데이터 작성 및 시각화 도전.
시각화는 folium을 통한 지도 작성
*api 과제는 PublicDateReader api를 통해 진행
(https://github.com/FinanceData/OpenDartReader)
GitHub - FinanceData/OpenDartReader: Open DART Reader
Open DART Reader. Contribute to FinanceData/OpenDartReader development by creating an account on GitHub.
github.com
# 시작.
part1. api 적용
필요한 라이브러리 및 모듈 작성 및 api 사용을 위한 key 값 입력.
api를 통해 '미분양현황' 데이터 정상 수집 여부 확인.
api를 통한 데이터 시점 확인.
데이터 구성 내용 확인.
분류값순번 = 1을 통해 서울시 분류값ID 확인
분류값순번 = 2 조회를 통해 시군구 별 지역구 분류값명 존재 확인.
데이터에서 서울 지역구만 추출 및 확인
검색 기간 2022.01 - 2022.11 설정, 월 별 각 지역구 데이터 도출 여부 확인.
지역구 한 곳의 검색 데이터 체크. (데이터 제공기간이 ~22.11)
2020년 서울시 지역구의 미분양 현황 데이터 조회 및 컬럼명 정리.
도출 데이터 피벗 테이블 작성.
plotly를 사용한 데이터 시각화.
part2. folium을 통한 시각화.
각 지역구에 마킹을 하기 위한 지역 구청 gps 설정.
(각 지역에 존재하는 유일한 장소 중 의미 있는 것을 고민하다 '구청'을 선택)
지도 시각화를 위한 requests, json, 지도 url 설정.
part1에서 도출한 데이터 가공.
산출 데이터에 지역 구청의 위도&경도 데이터 병합
지도 마킹을 위한 데이터 형변
지도 마킹 및 채도 변환 적용
최종 결과물 도출.
글을 마치며.
api를 활용해 데이터를 수집하는 과제는 이전 웹 스크래핑 과제와 다르게
팀원들과 '분업'을 하여 과제를 진행했다.
지도 시각화에 필요한 데이터 수집 및 가공은 내가 맡아서 코드화 했으며
남은 조원이 시각화 및 수집된 코드 효율화 작업을 진행해
웹 스크래핑 과제와 다르게 1일만에 결과 도출에 성공했다.
api 과제 진행에서 어려웠던점은
우선 '1개년치 지역구의 데이터를 어떻게 취합할 것인가?' 에 대한 고민이었다.
최초, 각 년도의 분기를 생성, 분기를 더해 1년을 만들고, 이 과정을 3번 반복해
3개년도의 자료를 취합하려 했으나,
서울시의 지역구가 무려 25개나 되어, 25개의 지역구의 1월 ~ 12월의 데이터 병합 방법에 있어
시행착오가 발생했다.
도출한 결과는 처음부터 모든 지역구의 1년치 데이터를 조회하고,
이를 3번 반복해 수행하는 것.
사실, 웹 스크래핑 과제 당시에는 다수의 코드를 수집해
통칭 '좋은 코드'를 선택하려 했으나,
코드 작성의 난이도를 고려하지 못한 아이디어로써 각자의 개인 프로젝트처럼 진행이 되어
이번 api 과제 진행에는 디스코드를 통한 코드 공유 및 코랩을 이용한 과제 진행으로
진행 사항을 공유해 진전 내역 발생시 사본 파일로 최신화하여
코드 작성을 수행하였다.
다가올 다음 과제 수행에 목표는
이번 과제에 시도하지 못한 깃허브를 사용해 코드를 교환하고
더 원활하게 목적값을 도출하는 것.
'멋쟁이사자처럼 AI School 8기(fin)' 카테고리의 다른 글
[멋쟁이사자처럼 AI스쿨] 통계 3일차 회고 (1) | 2023.02.16 |
---|---|
[멋쟁이사자처럼] 통계학 day2 정리 (0) | 2023.02.15 |
[멋쟁이사자처럼 AI스쿨] mini-project2 with EDA 회고 (0) | 2023.02.06 |
[멋쟁이사자처럼 AI스쿨] mini project #1-1. Web_scraping (0) | 2023.01.30 |
[멋쟁이사자처럼 AI스쿨 8기] 멋쟁이 사자처럼 데이터 분석 코스 (0) | 2022.12.19 |