2022.08.12

시각화를 위한 파이썬 기초

  • google colab: 클라우드 기반 무료 jupyter notebook 개발 환경.

  • "=": 값을 담는 상자

  • variable(변수)
    : 모든 변수명이 숫자로 시작하면 안된다. 항상 영문으로 시작. 변수명은 소문자로 시작
    if, for, while 예약으로 등록되어있으면 사용불가.
    '_'(언더바) 제외한 특수문자는 사용이 불가하다.

  • list란?
    : 여러 값을 함께 모을 수 있는 자료형 리스트는 대괄호([])와 콤마(,)를 사용해서 만든다
    한줄기차 : 일반적으로 우리가 순서를 셀 때 1부터 시작하지만, 파이썬에서는 0부터 시작합니다.
    .append( )를 이용해서 추가할 수 있다.

  • dictionary(사전)
    : 키와 값으로 구성되어 있는 자료형
    {키1:값1,키2:값2,'''}

기온 공공데이터 분석하기

서울의 기온 데이터 분석하기

  • CSV 파일에서 데이터 읽어오기

  • 데이터 출력하기

  • 헤더 저장하기

  • 기온 공공데이터에 질문하기

  • 서울이 가장 더웠던 날은 언제였을까? 얼마나 더웠을까? ✔
  • 일교차가 가장 큰 시기는 1년 중 언제쯤일까?
  • 겨울에는 언제 가장 추울까? 12월? 1월? 2월?
  • 가장 덥다고 알려진 대구보다 서울이 더 더운날이 1년 중 얼마나 있을까?

🥵서울이 가장 더웠던 날은 언제였을까🥵

  • 질문 다듬기

    서울이 가장 더웠던 날은 언제였을까? 얼마나 더웠을까?
    - 가장 더웠던 날의 기준은?
    - 우리가 갖고 있는 데이터는?
    -> 기상 관측 이래, 서울의 최고 기온이 가장 높았던 날은 언제였고, 몇 도였을까?
  • 문제 해결 방법 구상하기

    • 질문: 기상관측이래, 서울의 최고 기온이 가장 높았던 날은 언제였고, 몇 도였을까?
    • 질문을 해결하는데 필요한 데이터는?
      - 날짜, 최고기온 데이터
    • 질문을 해결하는데 필요한 절차(알고리즘)는?
import csv

max_temp = -999 # 최고 기온 값을 저장할 변수 -> 명확한 결과를 위해 극적인 값으로 셋팅
max_date = '' # 최고 기온이 가장 높았던 날짜를 저장 할 변수

# 1 -1 ) 파일을 연다.
f = open('/content/seoul.csv', 'r', encoding='cp949')

# 1 - 2) 파일을 읽는다.
data = csv.reader(f) #, delimiter= ',' 콤마인 경우에는 생각 가능하다

# 1 - 3) 헤더 저장하기
header = next(data) #  next 한줄만 읽어줌, 커서(읽어드릴 위치) 한칸 이동

# 2) 날짜, 최고 기온 확인
for row in data:
    # 2 - 1) 결측치 데이터 처리 -> 명확한 결과를 위해 극적인 값으로 초기화
    if row[-1] == '':
        row[-1] = -999

    # 2 - 2) 실수형변환 처리
    row[-1] = float(row[-1])

    # 3) 최고 기온과 날짜를 저장
    if max_temp < row[-1] :
        max_temp = row[-1] # 최고 기온
        max_date = row[0] # 최고 기온인 날짜
f.close()

# 4) 출력
print('기상 관측 이래 서울의 최고 기온이 가장 높았던 날은?', max_date, '로', max_temp, '도 있습니다.')

# 5) 파일을 닫는다.
f.close()

🥵서울이 가장 더웠던 날은 언제였을까에 대한 결과🥵

  • 기상 관측 이래 서울의 최고 기온이 가장 높았던 날은? 2018-08-01 로 39.6 도 있습니다.
    라는 결론이 나왔다!🍦

✋여기서 잠깐!

🥶서울의 가장 추웠던 날은 언제였을까?🥶

# 기상 관측 이래, 서울의 최저 기온이 가장 낮았던 날은 언제고 몇도 였을까?

import csv

min_temp = 999 # 최저 기온 값을 저장할 변수 -> 명확한 결과를 위해 극적인 값으로 셋팅
min_date = '' # 최저 기온이 가장 낮았던 날짜를 저장 할 변수

# 1 -1 ) 파일을 연다.
f = open('/content/seoul.csv', 'r', encoding='cp949')

# 1 - 2) 파일을 읽는다.
data = csv.reader(f) #, delimiter= ',' 콤마인 경우에는 생각 가능하다

# 1 - 3) 헤더 저장하기
header = next(data) #  next 한줄만 읽어줌, 커서(읽어드릴 위치) 한칸 이동

# 2) 날짜, 최저 기온 확인
for row in data:
    # 2 - 1) 결측치 데이터 처리 -> 명확한 결과를 위해 극적인 값으로 초기화
    if row[-2] == '':
        row[-2] = 999 # 높았을때와 반대로 영상 999도로 높였다.

    # 2 - 2) 실수형변환 처리
    row[-2] = float(row[-2])

    # 3) 최저 기온과 날짜를 저장
    if min_temp > row[-2] :
        min_temp = row[-2] # 최저 기온
        min_date = row[0] # 최저 기온인 날짜
f.close() 

# 4) 출력
print('기상 관측 이래 서울의 최저 기온이 가장 낮았던 날은?', min_date, '로', min_temp, '도 있습니다.')

# 5) 파일을 닫는다.
f.close()

다운로드 받은 csv 파일을 살펴보면 최저기온은 row[-2]값을 갖고 있다.
row[-1]을 row[-2]로 설정함으로 최저기온을 물어볼 수 있었다.
또한, 극댓값을 설정하기 위해 max_temp 였던 -999를 min_temp로 변환한뒤 999로 값을 재설정하였다.
마지막으로 "if min_temp < row[-2] :"의 부호를 "if min_temp > row[-2] :"로 바꿔줌으로써 최저 기온이었던 날짜와 기온을 알아낼 수 있었다.

🥶서울이 가장 추웠던 날은 언제였을까에 대한 결과🥶

  • 기상 관측 이래 서울의 최저 기온이 가장 낮았던 날은? 1927-12-31 로 -23.1 도 있습니다.
    라는 결론이 나왔다!🍜

✋✋진짜 마지막 여기서 잠깐!

😡대전의 가장 더웠던 날은 언제였을까?😡

import csv

max_temp = -999 # 평균 기온 값을 저장할 변수 -> 명확한 결과를 위해 극적인 값으로 셋팅
max_date = '' # 평균 기온이 가장 높았던 날짜를 저장 할 변수

# 1 -1 ) 파일을 연다.
f = open('/content/deajeon.csv', 'r', encoding='cp949')

# 1 - 2) 파일을 읽는다.
data = csv.reader(f) #, delimiter= ',' 콤마인 경우에는 생각 가능하다

# 1 - 3) 헤더 저장하기
header = next(data) #  next 한줄만 읽어줌, 커서(읽어드릴 위치) 한칸 이동

# 2) 날짜, 최고 기온 확인
for row in data:
    # 2 - 1) 결측치 데이터 처리 -> 명확한 결과를 위해 극적인 값으로 초기화
    if row[-1] == '':
        row[-1] = -999

    # 2 - 2) 실수형변환 처리
    row[-1] = float(row[-1])

    # 3) 평균 기온과 날짜를 저장
    if max_temp < row[-1] :
        max_temp = row[-1] # 평균 기온
        max_date = row[0] # 평균 기온인 날짜
f.close()    
# 4) 출력
print('기상 관측 이래 대전의 평균 기온이 가장 높았던 날은?', max_date, '로', max_temp, '도 있습니다.')
# 5) 파일을 닫는다.
f.close()

😡대전이 가장 더웠던 날은 언제였을까에 대한 결과😡

  • 기상 관측 이래 대전의 평균 기온이 가장 높았던 날은? 2018-08-15 로 39.4 도 있습니다.
    라는 결론이 나왔다!🧊
profile
Do (Awe)Something!

1개의 댓글

comment-user-thumbnail
2022년 8월 16일

이모티콘들이 너무나 적절하고 귀욤귀욤.. 파일 가져오는 부분 보드판에 제가 그렸던 것을 이미지로 그리다니.. 대단한 정성 굿굿!!

답글 달기