빅데이터 분석 - 기상청데이터 중 대구가 가장 더웠던 날과 온도.

IT/빅데이터|2020. 10. 24. 11:48

 

안녕하세요 직장인 블로거입니다~ 이번시간에는 대구광역시에서 기상청 관측이례 가장 더웠던 날의 일자와 온도를 구해보고자 합니다. 물론 빅데이터 분석이라는 주제로요. 파이썬으로 공공데이터를 분석하는 내용이기 때문에 다소 어려울 수 있습니다만 관심있으신 분들은 한번 재밌게 봐 보세요~ 소스코드 다 오픈합니다~

 

 

기상청공공데이터포털에 접속하여 기온데이터를 다운받습니다. 

 

파이썬으로 빅데이터 분석을 하기 위해서는 CSV파일이 필요합니다. 기상청 공공데이터 포털에서도 CSV형식으로 파일을 제공합니다. 

 

 

데이터를 받으려는 날짜와 지역, 지역은 대구광역시를 선택하여 파일을 다운로도 받도로 합니다. 파일의 이름은 원하는거 아무거나 적으시면 되지만 이 파일은 파이썬에서 호출하는 대상이 되니 너무 길거나 복잡하게 하지 마세요.

 

그리고 기간은 19080101부터 현재 날짜로 변경 지정 하여 파일 생성합니다.

 

 

저는 daegoo로 파일명을 입력해서 저장하였습니다. 

 

 

 

다운로드 받은 파일을 파이썬에서 호출하여 분석을 하도록 합니다. 

 

그 전에 CSV파일을 조금 편집하도록 하세요. 분석이 용이하려면 원래 다운로드 파일에서 불필요한 부분을 삭제해야 합니다. 아래와 같이 데이터가 없는 데이터 설명 부분을 삭제하고 다시 저장합니다.

 

 

이제 이 파일을 파이썬에서 불러와 보도록하죠.

 

 

import csv

f = open('daegoo.csv','r',encoding='')

data = csv.reader(f, delimiter=',')

header = next(data)

#print(header)로 메타 데이터 내역 확인 가능

 

 

우선 import로 파이썬의 CSV함수 사용을 선언하고 파일을 불러옵니다. 그 전에 한글 파일이니 파이썬에서 깨지지 않도록 인코등도 한글로 지정하여야 합니다.

 

next()함수는 파일의 메타데이터를 삭제하는 명령어 입니다. 실제로 삭제가 아닌 제외기 때문에 메타데이터를 header로 이관한다고 보시면됩니다. 실제 데이터 분석에 메타데이터는 필요가 없거든요.

 

 

max_temp = -999

max_date = ''

 

 

가장 기온이 높았던 날짜를 구하기 위해 우선 max_temp변수를 선언하여 최저치를 입력합니다. 이 변수에 있는 값을 비교하며 최고 온도 데이터를 구하는 건데 제일 처음 비교되는 대상의 온도가 바로 max_temp로 들어가야하기 때문에 가장 낮은 온도를 입력한거예요.

 

 

for row in data :

    if row[-1] == ' ' :

        row[-1] = -999

    row[-1] = float(row[-1])

    if max_temp < row[-1] :

        max_date = row[0]

        max_temp = row[-1]

 

 

data에 있는 csv내역을 전체 다 비교하면서 최고 온도를 찾는 코드입니다. 최고온도를 갖는 행이 발생하면 해당 행의 날짜와 온도를 max_date변수와 max_temp변수에 치환하도록 구성하였습니다.

 

참고로 다운파일의 구성을 보면 가장 앞열에 날짜가 있고 가장 마지막 열에 최고온도가 있습니다. 그리고 최고온도열 바로 앞열에는 최저온도 데이터가 있습니다. 이런 빅데이터를 분석할때는 가장 먼저 파일의 구성을 파악해야합니다. 

 

row[0]은 날짜를, row[-1]은 최고 온도의 위치 명령어입니다.

 

 

f.close()

print('기상관측 이래로 대구의 최고 기온이 가장 높았던 날은', max_date+'로,', max_temp, '도 입니다.')

 

 

전체 파일의 빅데이터를 쭉 비교하면서 최종적으로 나온 최고기온의 날짜와 최고기온이 남긴 변수 내용을 print()함수를 사용하여 출력합니다.

 

 

 

전체 소스 코드

 

 

import csv 
f = open('daegoo.csv','r',encoding='cp949')
data = csv.reader(f,delimiter=',')
header = next(data)

max_temp = -999
max_date = ''

for row in data :
    if row[-1] == '' :
        row[-1] = -999
    row[-1] = float(row[-1])
    if max_temp < row[-1] :
        max_date = row[0]
        max_temp = row[-1]

f.close()

print('기상관측 이래로 대구의 최고 기온이 가장 높았던 날은', max_date+'로,', max_temp, '도 입니다.')

 

이렇게 파이썬을 사용하여 공공 빅데이터를 가지고 대구에서 가장 더운 날의 날짜와 온도를 구해보았습니다.

 

물론 기상 공공데이터에는 최고온도외에 최저온도도 있고 날짜도 로우데이터로 모수가 충분하기 때문에 다양한 방면으로 분석하여 사용할 수 있습니다. 

 

빅데이터 분석은 분석가의 창의력에 따라 어떠한 결과가 나올지 모르는 미지의 영역입니다. 더욱 멋진 분석 영역을 공부해보면 좋을거 같아요.

댓글()
  1. BlogIcon Goodshare 2020.10.24 12:50 신고 댓글주소  수정/삭제  댓글쓰기

    빅데이터를 이용하면 정말 많은 정보를 분석이 가능하군요. 활용도가 정말 무궁무진 한듯하네요.
    좋은 주말 되세요~

  2. BlogIcon 화이트초코모카 2020.10.24 13:10 신고 댓글주소  수정/삭제  댓글쓰기

    여퐝님 코드 다루시는거 보여주시니 너무 멋지시네요 (저는 2개월동안 자바 초급 배워봤는데 영타만 늘어왔습니다.)

  3. BlogIcon 핑크 봉봉 2020.10.24 13:32 신고 댓글주소  수정/삭제  댓글쓰기

    대구 사람으로서 대구 더위 관심이 마구 가네요~~

  4. BlogIcon W.소나무 2020.10.24 13:46 신고 댓글주소  수정/삭제  댓글쓰기

    오+_+
    신기합니다:)
    포스팅 잘 보고갑니다:)

  5. BlogIcon 짱구노리 2020.10.24 14:05 신고 댓글주소  수정/삭제  댓글쓰기

    여쫭님이 코드도 다루시는군요~~ 대단하십니다... 좋은정보 잘 보고 갑니다^^ 즐거운 토요일 되세요~

  6. BlogIcon 친절한안여사 2020.10.24 14:19 신고 댓글주소  수정/삭제  댓글쓰기

    좋은 글 잘보고 갑니다.
    음 저도 코드배워애 하나봐요 ㅋㅋ 잘하시는 분보면 부러워요~

  7. BlogIcon 소라아씨 2020.10.24 14:49 신고 댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니당
    잘보고가욤

  8. BlogIcon 다람쥐와 포동포동이 2020.10.24 15:06 신고 댓글주소  수정/삭제  댓글쓰기

    아이고 저도 프로그래밍 공부 해야하는데
    포스팅 보고 자극 받아 갑니다..

  9. BlogIcon 힘차게베이 2020.10.24 16:48 신고 댓글주소  수정/삭제  댓글쓰기

    잘보고 갑니다 구독했습니다

  10. BlogIcon 지후니74 2020.10.24 16:51 신고 댓글주소  수정/삭제  댓글쓰기

    개인은 물론이고 기업에도 매우 유용한 자료들입니다.

  11. BlogIcon 유쏘밍 2020.10.24 16:52 신고 댓글주소  수정/삭제  댓글쓰기

    와우 어려워요 ㅎㅎㅎㅎ

  12. BlogIcon 리가삼촌 2020.10.24 17:18 신고 댓글주소  수정/삭제  댓글쓰기

    음 여퐝님.전문가의 포스가 느껴집니다. 역시 대단하세요~ 빅데이터가 있어도 분석하는 사람에 따라 달라지는 미지의 세계군요~ 감사합니다.

  13. BlogIcon 마천동마사장 2020.10.24 17:45 신고 댓글주소  수정/삭제  댓글쓰기

    많이배워갑니다~!

  14. BlogIcon 해피하우스크롱선생님 2020.10.24 18:52 신고 댓글주소  수정/삭제  댓글쓰기

    오늘도 글 잘보고 갑니다^^

  15. BlogIcon 고독한집사 2020.10.24 19:56 신고 댓글주소  수정/삭제  댓글쓰기

    빅데이터를 활용하실 줄 알다니!! 이거 읽어도 무슨 말인지 모르겠지만 신기하네요.

  16. BlogIcon 우죠우죠 2020.10.24 20:27 신고 댓글주소  수정/삭제  댓글쓰기

    구독해서 다행이에요!
    접어뒀던 코딩...자극받고있어요!
    좋은 정보 감사합니다

  17. BlogIcon 제이미 X jamie 2020.10.24 21:16 신고 댓글주소  수정/삭제  댓글쓰기

    이렇게 빅데이터를 다루시는 모습보면 항상 대단하다 느끼면서 부럽기도 해요 ㅠㅠ

  18. BlogIcon 김가든씨 2020.10.25 00:18 신고 댓글주소  수정/삭제  댓글쓰기

    좋은 포스팅 감사합니다~~

  19. BlogIcon 용민쓰 2020.10.25 18:54 신고 댓글주소  수정/삭제  댓글쓰기

    이런 방법도 있었네요 !
    좋은 정보 감사합니다 !