CSV다루기 (feat. python)

괴도소녀·2021년 7월 3일
0

python

목록 보기
3/11

CSV는 Comma Seperated Value의 약자이며, ,로 구분된 파일을 말한다.

CSV파일을 쓰는 법부터 알아보자.

이영자씨가 추천한 맛집리스트를 CSV파일로 만들어봤다...
맛있ㅆ....

CSV

foodfightlist = {
  				 1 : ["돈까스잔치","서울 용산구 서빙고로 297"],
                 2 : ["한남동한방통닭", "서울 용산구 대사관로34길 38"],
                 3 : ["진대감", "서울 마포구 마포대로12길 54-2"],
                 4 : ["홍미닭발", "서울 강남구 강남대로 628"],
                 5 : ["연타발", "서울 강남구 도산대로 231"]
                 }
                 
with open("FOODFIGHTLIST.csv","w") as f:
    for i in foodfightlist.values():
        data = ",".join(i)
        f.write(data+"\n")

파일이 생성된 것을 확인하면 된다.
그런데 만약 내가 table의 header부분을 넣고 싶어졌다.
간단하다. 새로운 파일에 header를 만들어서 foodfightlist의 내용을 이어붙여나가면 된다.

import csv

header = ["name", "address"]

with open("FOODFIGHTLIST.csv","r") as inputfile:
    with open("FOODFIGHTLIST_with_header.csv","w", newline='\n') as outputfile:
        fi = csv.reader(inputfile, delimiter=',')
        fo = csv.writer(outputfile, delimiter=',')
        fo.writerow(header) 
        for row in fi:
            fo.writerow(row)

pandas

보통 데이터 분석에서 pandas + .csv 조합을 많이 쓴다.
.xlsx을 안쓰는 이유는 데이터의 양이 많을 경우 GUI 기반 확장자인 엑셀은 느리기 때문이다.
pandas에서는 read_csv,to_csv라는 메소드를 지원하기 때문에 csv파일을 읽고 쓸 때 굉장히 간편하다.

[to_csv]

# 맛집 리스트들을 준비한다.
header = ["name", "address"]
rows = [ 
  ["돈까스잔치","서울 용산구 서빙고로 297"],
  ["한남동한방통닭", "서울 용산구 대사관로34길 38"],
  ["진대감", "서울 마포구 마포대로12길 54-2"],
  ["홍미닭발", "서울 강남구 강남대로 628"],
  ["연타발", "서울 강남구 도산대로 231"],
]

# pandas로 csv파일 형태로 저장한다.
import pandas as pd
df = pd.DataFrame(rows, columns=header)
df.to_csv('foodfightlist_pd.csv', index=False) # index를 제외하겠다는 뜻이다.

읽어오는 방법도 매우 간단명료하다.
[read_csv]

import pandas as pd

df = pd.read_csv('foodfightlist_pd.csv')
df.head() # df.head()를 통하여 데이터를 잘 읽어왔는지 확인한다.

0개의 댓글