ABC부트캠프: Day6[기온 공공데이터 분석]
ABC 부트캠프 [기온 공공 데이터 분석]
드디어 파이썬 라이브러리를
배우는 단계에 접해 들었다.
기온 공공데이터를 활용한 기온 분석과
인구 공공데이터를 활용한 성별 및 인구구조 분석을
CSV 파일을 이용하는 방법으로 진행한다.
이제 라이브러리를 사용하는 만큼
실전에서 활용하는 기술들을 접해보기 때문에
집중하여 진행해보도록 한다!
—
기온 공공데이터를 활용한 기온 분석
데이터 파일인 csv 파일을 이용하여 Google Colab 환경에서 분석한다.
데이터 다운로드
기상자료개방포털 |
https://data.kma.go.kr/cmmn/main.do
이곳에서 기온 통계 분석 -> 기온 분석 -> 기간/지역설정을 통하여 csv 파일을 다운로드
csv 파일은 notepad++ 어댑터를 이용하여
데이터를 가공하도록 한다.
https://notepad-plus-plus.org/downloads/
notepad++로 열어본 csv 파일
다운받은 그대로 csv 파일을 데이터를 활용한다면
데이터가 오류를 받아들이고 잘못된 정보가 도출할 수 있다.
그래서 이러한 가공된 형태로 꼭! 바꿔줘야
옳은 데이터 분석을 활용할 수 있게 된다.
1. 기온 데이터 읽어오기
colab에서 파일을 열어 아까 가공한 csv 파일을 업로드 해준다.
그리하여 데이터가 csv 파일을 읽을 수 있게 만들어준다.
2. 헤더 저장하기
헤더인 데이터 정보를 저장한다.
next() 함수는 한줄 일고, 커서(읽는 위치)로 한칸을 이동한다.
3. 데이터 불러와서 최고기온 출력하기
결측치 데이터란? 명확한 결과를 위해 극적인 값으로 초기화 하는 방식이다.
절대 나올 수 없는 온도로 최고온도의 초기값을 -999로 설정
기상 관측 이래, 서울의 최고 기온이 가장 높았던 날은 언제고 몇도 였을까? |
4. 최고 기온과 날짜 찾기
최고 기온을 실수형으로 형 변환한다. (온도는 실수형으로 나타나기 때문)
최고기온과 날짜를 찾을 수 있는 함수를 구현한다.
row[-1]인 이유는 데이터 파일 상 최고기온이 가장 오른쪽에 있기 때문이다.
기상 관측 이래, 서울의 최저 기온이 가장 낮았던 날은 언제고 몇도 였을까?
이번에는 최저 기온을 찾아보자.
아까 최고 기온의 결측치 데이터가 -999였다면, 최저 기온은 999이다.
row[-2]인 이유는 최고기온보다 앞에 나타나있는 데이터이기 때문이다.
matplotlib 라이브러리 사용
import matplotlib.pyplot as plt
기본 그래프 그리기
타이틀 속성 / 범례 속성 추가
plt.title()은 타이틀 속성을 추가하여 그래프의 제목을 담당한다.
plt.legend()는 범례 속성을 추가한다.
plt.show()로 그래프를 보여지게 한다.
기온 데이터 시각화
matplotlib 라이브러리를 통해 기온 데이터를 시각화 하는 과정을 거쳐보자.
우선 한글이 깨지는 현상이 존재해서, 한글 깨짐을 방지해보자
한글 깨짐 방지
pip install koreanize-matplotlib
pip install 해서 한글 koreanize를 설치한다.
최고 기온을 히스토그램으로 표현하기
plt.hist() 라는 함수를 추가해서 데이터의 빈도수를 늘리는 히스토그램을 표현
서울의 최고 기온 히스토그램으로 표현하기
특정한 월의 데이터만 남기려고 할 때는,
split()함수를 사용하여
row[0]번째 안의 [1] ==> (월)을 분리한다.
01월과 08월 서울의 최고기온의 빈도수를 한번에 시각화 하기
데이터 수치를 두가지 이상 보고싶다면,
print.hist()를 더 추가한다. 구분할 수 있게 색깔을 달리한다.
서울의 사용자가 입력한 월 최고, 평균, 최저 기온 히스토그램
사용자가 입력한 월의 최고기온, 평균기온, 최저기온의 히스토그램을
출력하는 프로그램을 만들어보았다.
최고기온을 나타내는 row[-1],
최저기온을 나타내는 row[-2],
평균기온을 나타내는 row[-3]으로 데이터를 담아 출력했다.
오늘은 데이터 가공도 해보고, 가공한 파일을 분석하는 과정을 배웠다.
가공하는 과정이 중요한 과정이란 것을 깨달았고,
그 데이터를 얼마나 잘 활용하는지, 잘 분석하여 나타낼 수 있는지에 대한
많은 양의 데이터를 분석하는 일이 재밌게 느껴져서 좋았다.
인구 공공데이터를 활용한 성별 및 인구구조 분석까지 했어야 했는데,
기온 데이터 분석하는 것 만으로도 시간이 부족해 진행하지 못하였다.
진행하지 못하였어도, 오늘 배웠던 것을 기반으로
스스로 인구 데이터를 가공해보고 분석해보는 시간을 가져보도록 하자!
댓글남기기