🐢 꼬부기 LV.1 | 개념•기초/💧물대포(핵심개념)

파이썬으로 분석할 데이터 불러오고 가공하기

서화 2026. 3. 15. 19:16

파이썬으로 데이터를 분석해보려고 한다

데이터 분석의 과정

  1. 데이터 불러오기
  2. 데이터 분석하기
  3. 결과도출하기

데이터 분석의 핵심은 가져온 데이터를 얼마나 잘 가공할수 있는가이다

데이터 가져오기

데이터를 가져올때는 보통 csv로 끝나는 파일을 사용하고 이 csv파일은 정부프로젝트에서 많이 사용한다 따라서 csv 파일을 다룰수 있는 라이브러리를 가져와야한다

import csv

https://www.data.go.kr/

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

공공 데이터 포털에서 필요한 자료를 검색할수 있다

필요자료를 검색한뒤 해당 페이지의 url을 클릭하면 해당 파일을 관리하는 곳으로 연결된다

오픈API의경우 웹에서 사용하기 때문에 XML과 JSON으로 이루어져있고 리스트형 데이터들이다

페이지 이동해서 원하는날자를 선택하고 csv파일로 받을수있다 다운로드는 로그인 없이 가능하다

다운로드 받은 파일은 파이썬이 설치되어있는 위치와 같은 위치에 두어야한다 나는 vs 코드를 사용할거라서 vs코드에서 파이썬 파일을 저장하는 위치에 저장해주었다

#데이터 분석할 파일이름정의
file_name="test.csv"

파이썬은 _ 언더바를 사용하고 자바에서는 카멜을 사용한다

파일 읽기 모드로 불러오기

#읽기모드로 파일 불러오기
with open(file_name,"r",encoding="utf-8", errors="ignore")as file :
    reader = csv.reader(file)
    #파일의 내용을 한줄씩(행(row)단위로 읽기) 읽을 준비 완료!

여기서 쓰는 open은 파이썬의 내장함수로 이 구조가 파일이라는 이름으로 열거고  r은 읽기모드로 열거고 한국어로 인코딩해주고 에러생기면 무시해줘 라는 의미를 가지고 있다

cvs 라이브러리인 reader를 사용하여 파일을 읽어오는데 여기서 객체 지향의 개념이 파이썬에 녹아 있는것을 알수잇다

#불러온 파일 출력하기
 for row in reader :
        print(row)

여기서 파일 위치를 못찾는 에러가 발생했는데 

이유는 현재 터미널의 실행 위치가 우리 팀프로젝트 기준인데 csv파일의 위치는 D드라이브에 있기때문이다 따라서 터미널 실행위치를 D드라이브로 옮겨주고 파이썬 파일을 실행했다

PS D:\> python .\pytest.py

vs 코드 터미널 실행 결과

데이터 가공하기

결과에 보이는 숫자를 제외한  첫 번째 행의 문자들은 우리한테 필요하기 때문에 헤더를 사용해서 맨윗줄을 읽을수 있게만들어야한다

 #파일 제일 맨윗줄 읽어오기
    #읽어낸 맨윗줄은 헤더에 저장되며 인코딩 맞춰서 출력하면 맨윗줄도 볼수있다
    header = next(reader)

최고기온 구하기

 #최대값 정의(초기화)
    max_value = 0

max는 기본함수로 변수명으로 사용할수 없다

현재 파일 타입이 리스트이기때문에 한 행씩 읽어 최대값을 찾는다

  #반복문 사용하여 1행씩 읽어서 최대값찾기
    for row in reader :# 1행씩 읽기
        print(row[-1]) #제일 마지막값 출력

파이썬은 후진이 가능하다 

['\t1907-10-01', '108', '13.5', '7.9', '20.7']

여기서 보면 꺽쇄 기준 1907-10-01 이 인덱스의 0번이고 '20.7'이 4번째가 된다

따라서 row[5]는 없는값이라서 출력되지는 않지만 [-1]은 4번째 인덱스를 출력하는것이므로 20.7이 나오는것을 볼수있다

' ' 이 표시가 안되긴하지만 아직은 문자열이다

슬라이싱 간단정리

a[:]      # 전체 복사
a[:3]     # 처음부터 3 전까지
a[3:]     # 3부터 끝까지
a[1:4]    # 1부터 4 전까지
a[::2]    # 2칸씩
a[::-1]   # 거꾸로

이제 최고기온을 구해보도록하자

파이썬은 동적타이핑 언어라서 자료형 에러가 잘난다 지금 읽어온 파일이 문자열 타입이라서 실수로 바꿔주어야한다

출력할때도 마찬가지로 자료형 타입에 주의해야한다

 value = float(row[-1]) # 타입 주의!!!
        if max_value < value : # 최대값이 값보다 작거나
            max_value = value # 최대값과 값이 같을때
# '' 있으면 문자열로 인식하기 때문에 한번 감싸서 출력해야한다 
print("최종: "+str(max_value)) # 타입 주의!!!

이렇게 내가 원하는 최고온도값을 가공하여 사용할수 있게 된다