왜 CSV?
Kaggle의 입력/출력
캐글은 주어진 데이터셋을 바탕으로 문제 해결을 목표로 합니다. 데이터는 CSV 파일로 주며, CSV로 출력 및 제출해야 합니다.
train.csv
와 test.csv
등등의 파일을 파이썬으로 읽어봅시다.
CSV란?
들어가기 전에 상식으로 CSV 파일이 무엇인가 알아야 합니다.
CSV 란 comma-separated values의 줄임말로 몇 가지 필드를 쉼표(,
)로 구분한 텍스트 데이터 및 텍스트 파일입니다.
확장자는 .csv
를 사용하고, MIME 형식은 text/csv
입니다.
비슷한 포맷으로 탭으로 구분된 TSV 로 반각 스페이스로 구분하는 SSV 등이 있습니다.
호환되지 않는 포맷을 사용하는 프로그램 끼리 자료를 전달할 때 사용합니다. Split 하여 처리하기 편하다는 장점이 있습니다.
CSV를 읽고 원하는 형식으로 포맷을 변경하는 것이 앞으로 해야할 일이란 것을 알 수 있습니다.
소스코드로 알아보기
Begginer : 읽기/쓰기 기본
읽기
기본적인 csv파일 읽기는 다음과 같습니다. csv 모듈을 import하고, 파일을 열고, reader라는 iterator로 루프를 돌며 읽습니다.
import csv
f = open('file_name.csv', 'r', encoding='utf-8')
rdr = csv.reader(f)
for line in rdf:
print(line)
f.close()
쓰기
읽기와 비슷하게 할 수 있습니다. 파일을 열고, writer로 추가하고, csv형식으로 적습니다.
import csv
f = open('output.csv', 'w', encoding='utf-8')
wr = csv.writer(f)
wr.writerow([1, "Alice", True])
wr.writerow([2, "Bob", False])
f.close()
Intermediate : 조금 더 있어보이게
보통 파일은 계속 열고 있을 필요가 없기 때문에 다음과 같이
with as
문으로 파일 닫는 과정을 생략할 수 있습니다.
또한 DictReader
로 파이썬 딕셔너리 폼으로 읽을 수 있고, DictWriter
로 쓸 수도 있습니다.
둘을 합쳐서 다음과 같이 사용할 수 있습니다.
with open('./train.csv') as csvfile:
rdr = csv.DictReader(csvfile))
for i in rdr:
print(i)
Advanced : pandas로 읽기
후에 라이브러리 파트와 연결되는 내용입니다. 이 부분은 pandas 라이브러리를 참고해주세요.
import numpy as pd
train = pd.read_csv("./train.csv")
test = pd.read_csv("./test.csv")
# train 데이터 살펴보기
train.describe(include="all")
Leave a Comment