Big Data Processing Using Python [6] - 공공 데이터 1

Ann Jongmin·2025년 5월 2일
0

Data Processing

목록 보기
7/9
post-thumbnail

Colab 링크: 기온 데이터 분석 (Google Colab)
Github: python-bigdata-colab-practice

from google.colab import drive
import os
import csv

drive.mount('./gdrive', force_remount=True)
print(os.getcwd())

f = open('./gdrive/MyDrive/Colab Notebooks/ch4_temperature/temperature.csv', 'r', encoding='cp949')
data = csv.reader(f, delimiter=',')

# 헤더 건너 뛰기
# next(data) 를 호출하면 첫 번째 행(헤더)을 반환하면서 이터레이터 내부 포인터가 다음 행으로 넘어감.
header = next(data)  # ['날짜', '지점', '평균기온(℃)', '최저기온(℃)', '최고기온(℃)']

# 최고기온 찾기 및 오류 처리
max_temp = None
max_row  = None
errors   = []

# data 순회
for lineno, row in enumerate(data, start=2):
  # 빈 행은 건너뛰기
  if not row:
    continue

  # 컬럼 개수가 기대치(여기선 최소 5개)보다 작으면 건너뛰기
  if len(row) < 5:
    continue

  # 최고기온 데이터 타입을 실수타입으로 변환
  try:
    row[-1] = float(row[-1])
  except ValueError:
    errors.append((lineno, row))
    continue

  # 최고기온 갱신
  if (max_temp is None) or (row[-1] > max_temp):
    max_temp = row[-1]
    max_row  = row

# 데이터 수집 종료
f.close()

# 결과 출력
print(f'기상 관측 이래, 최고 기온이 가장 높았던 날은 {max_row[0].strip()}로, {max_temp} 도 입니다.')

# 결측치/오류 결과 출력
print(f'결측 및 오류가 발생한 일수는 {len(errors)}일입니다.')
profile
AI Study

0개의 댓글