본문 바로가기
Theory/Data Analysis

[Python 데이터 분석] 01 데이터 불러오기

by Orangetasteboy 2023. 11. 2.

CSV

‘Comma-Separated Values’의 약자로 각각의 데이터 값을 콤마(,)로 구분하는 파일 형식

정부에서 운영하는 공공데이터포털(www.data.go.kr)이 제공하는 일반적인 파일 형식

 

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

csv.reader() 함수 : CSV 파일에서 데이터를 읽어오는 함수

csv.writer() 함수 : CSV 파일에서 데이터를 저장하는 함수

import csv # csv 모듈 불러오기
f = open('seoul.csv', encoding='cp949') # csv 파일을 open() 함수로 열어서 f에 저장
data = csv.reader(f) # f를 reader() 함수에 넣어 data라는 csv reader 객체 생성
for row in data :
    print(row)
f.close() # 연 파일을 닫기

 

헤더 저장하기

헤더 : 데이터 파일에서 여러 가지 값들이 어떤 의미를 갖는지 표시한 행

next 함수로 헤더 별도 저장 가능

next 함수는 첫 번째 데이터 행을 읽어오면서 데이터의 탐색 위치를 다음 행으로 이동시키는 명령

import csv
f = open('seoul.csv', encoding='cp949')
data = csv.reader(f)
header = next(data) # header라는 변수에 헤더 데이터 행 저장
print(header) # header라는 변수 출력
f.close()

 

서울의 기온이 가장 높았던 날의 날짜와 기온 구하기

import csv                    # CSV 모듈 불러오기
f = open('seoul.csv')         # seoul.csv 파일 읽기 모드로 불러오기
data = csv.reader(f)
header = next(data)           # 맨 윗줄을 header 변수에 저장하기
max_temp = -999               # 최고 기온을 저장할 변수 초기화
max_date = ''                 # 최고 기온이었던 날짜를 저장할 변수 초기화
 
for row in data :
    if row[-1] == '' :        # 만약 데이터가 누락되었다면 최고 기온을 -999로 저장
        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,'도 였습니다.')  # 출력

댓글