코딩항해기

[Python] CSV 파일 데이터 불러오기 본문

Python

[Python] CSV 파일 데이터 불러오기

miniBcake 2024. 11. 25. 11:31

 

파이썬은 데이터 시각화에 유용한 언어이다. 데이터 시각화를 하기 위해서는 데이터가 있어야하는데, 이 글에서는 데이터를 불러오는 방식에 대해 정리할 예정이다.

 

먼저 CSV란, 표 형태의 데이터이다.

 

 

[DBMS] Oracle에서 MySQL로 데이터 이관 (CSV/DBeaver)

CSV (Comma Separated Values)표 형태의 데이터를 저장하는 파일 형식이다. 각 줄은 하나의 행에 해당하고 각 열 사이에는 쉼표(Comma)를 넣어 구분하며 이 때 모든 행은 같은 개수의 열을 가져야한다. 줄

minibcake.tistory.com

 

엑셀의 형태를 띄고 있어 엑셀 프로그램으로 열어서 쉽게 데이터를 조작하거나 확인할 수 있다.

 

데이터 불러오기

파이썬에서는 데이터 파일을 간단하게 불러올 수 있다. 상대경로 또는 절대경로를 사용해 with open을 사용하면 된다.

file_path = 'test.csv'
#파이썬에서 상대경로로 test.csv파일을 불러올 예정이다.
#현재 .py파일과 같은 위치에 test.csv파일이 존재한다.

with open (file_path, mode='r') as file :
#파일명을 r(read)할 것이며 file이라는 객체명을 사용한다.

 

with open에는 여러 설정이 있다. 먼저 첫 인자로는 파일명(파일경로)가 들어간다. mode는 r과 w가 있는데 각각 read와 write의 줄임말로, 지금은 데이터를 읽어들어야하기 때문에 r로 설정했다. 그 외에도 인코딩 등 다양한 설정이 존재한다. 이제 읽어들인 객체에 알리아스 별칭을 통해 이름을 지정할 수 있다. file로 지정했다.

 

불러온 파일은 csv 모듈 안에 있는 reader()를 통해 한 줄씩 읽어들일 수 있다. 

 

데이터 출력

 

test.csv는 첫 줄이 컬럼명, 헤더로 구성되어있고 2번째 줄부터 데이터가 있는 구조를 가지고 있다.

따라서 데이터를 읽어들일 때 첫 줄을 제외한 데이터만 반복해야한다. 반복문 안에 종료조건이 아닌데도 한 번만 실행되는 코드가 있는 것은 좋지 않기 때문이다.

 

#파일 경로 설정
#해당 파일을 읽어들이기
 #파일 한 줄씩 list로 분리해 읽어들이기
 #헤더 줄 (첫 줄) 읽기
 #데이터 반복해서 전부 읽기
  #데이터를 한 줄씩 출력

 

import csv

file_path = 'test.csv'
#파이썬에서는 카멜보다는 스네이크 사용

#with open (파일명, mode='어떤 모드로 읽을지', encoding='인코딩') as 객체명 :
#작성은 w 읽을거면 r

with open (file_path, mode='r') as file :
    reader = csv.reader(file) #한 줄씩 데이터를 읽어들임
    #파이썬 csv 모듈 사용
    
    #첫 줄을 읽기
    header = next(reader) #읽은 데이터를 헤더에 보관
    
    for row in reader : #foreach문
        print(row) #데이터 출력

 

이렇게 하면 데이터가 한 줄씩 list 타입으로 콘솔에 출력된다.

list타입이기 때문에 컬럼을 지정해 출력하는 것도 가능하며, print로 여러 객체를 할 때는 java처럼 +연결연산자를 사용하면 연산되어버리는 경우도 있기 때문에 ,로 구분한다.

            a = row[2]
            b = row[-2] #리버스가 되므로 가능
            if a.startswith('Dec') : #12월데이터만 출력
                print(a, b) #일시 평균기온

 

'Python' 카테고리의 다른 글

[Python] NumPy (np)  (1) 2024.11.27
[Python] 데이터 시각화하기 (pyplot)  (2) 2024.11.26
[Python] 파이썬 자료형  (0) 2024.11.20
[Python] 파이썬 Python 이해  (0) 2024.11.20