다양한 데이터 저장/읽기 - CSV 파일
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
2. 다양한 데이터 저장/읽기 - CSV 파일¶
- CSV(Comma-Separated Values): 스프레드시트 데이터를 저장할 때 가장 널리 쓰이는 파일 형식
- 엑셀등 여러 응용프로그램에서도 지원
- CSV 형식 (각 열은 콤마로 구분, 각 행은 줄바꿈 문자로 구분)
dave, david apple, 2 korea, japan, chian
- 파이썬에서 CSV 파일로 저장/읽기 방법
- csv 라이브러리 사용
In [6]:
# csv 파일 쓰기
import csv
with open('test.csv', 'w', encoding='utf-8', newline='') as writer_csv: # with 와 함께 쓰면 close()를 별도로 해줄 필요 없음
writer = csv.writer(writer_csv, delimiter=',') # delimiter 에 구분자로 콤마(,)를 넣어줌
writer.writerow(['love']*3 + ['banana']) # 하나의 row 를 리스트 형태로 입력
writer.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) # 하나의 row 를 리스트 형태로 입력
# open() 함수에 newline='' 를 넣어주는 이유는
# 윈도우의 경우 csv 모듈에서 데이타를 쓸 때 각 라인 뒤에 빈 라인이 추가되는 문제가 있기 때문
# 이를 없애기 위해 (파이썬 3 에서) 파일을 open 할 때 newline='' 와 같은 옵션을 지정
'''
love,love,love,banana
Spam,Lovely Spam,Wonderful Spam
'''
Out[6]:
In [22]:
import csv
In [29]:
with open('test.csv', 'w', encoding='utf-8', newline='') as writer_csv: # with 와 함께 쓰면 close()를 별도로 해줄 필요 없음
writer = csv.writer(writer_csv, delimiter=',') # delimiter 에 구분자로 콤마(,)를 넣어줌
writer.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) # 하나의 row 를 리스트 형태로 입력
writer.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) # 하나의 row 를 리스트 형태로 입력
In [31]:
import csv
with open('test.csv', 'w', encoding='utf-8', newline='') as writer_csv: # with 와 함께 쓰면 close()를 별도로 해줄 필요 없음
writer = csv.writer(writer_csv, delimiter=',') # delimiter 에 구분자로 콤마(,)를 넣어줌
writer.writerow(['dave', 'david']) # 하나의 row 를 리스트 형태로 입력
writer.writerow(['apple', 2]) # 하나의 row 를 리스트 형태로 입력
writer.writerow(['korea', 'japan', 'chian']) # 하나의 row 를 리스트 형태로 입력
In [ ]:
dave, david
apple, 2
korea, japan, chian
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
In [34]:
import csv
with open('test.csv', 'w', encoding='utf-8', newline='') as files:
writer = csv.writer(files, delimiter=',')
writer.writerow(['dave', 'david'])
writer.writerow(['apple', 2])
writer.writerow(['korea', 'japan', 'chian'])
In [38]:
# csv 파일 쓰기
import csv
with open('test.csv', 'r', encoding='utf-8') as reader_csv:
reader = csv.reader(reader_csv, delimiter=',')
for row in reader:
print (row)
In [40]:
# csv 파일 쓰기 (사전 타입으로 파일 쓰기)
import csv
with open('test.csv', 'w', encoding='utf-8', newline='') as writer_csv:
field_name_list =['First Name', 'Last Name']
writer = csv.DictWriter(writer_csv, fieldnames=field_name_list)
writer.writeheader()
writer.writerow({'First Name': 'Dave', 'Last Name': 'Lee'})
writer.writerow({'First Name': 'David', 'Last Name': 'Kim'})
writer.writerow({'First Name': 'Robin', 'Last Name': 'Park'})
In [ ]:
Name1, Name2
In [ ]:
dave, david
apple, 2
korea, japan
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
가장 빠르게 풀스택 개발자가 될 수 있도록, 최적화된 로드맵을 제공합니다
In [13]:
# csv 파일 쓰기 (사전 타입으로 파일 읽기)
import csv
with open('test.csv', 'r', encoding='utf-8') as reader_csv:
reader = csv.DictReader(reader_csv)
for row in reader:
print(row['First Name'], row['Last Name'])
In [41]:
# pandas 라이브러리에서 csv 파일 읽기1
# dataframe 을 csv 파일로 저장하기 위해서는 to_csv() 메서드를 사용함
import pandas as pd
doc = pd.read_csv("test.csv", quotechar=',')
doc
Out[41]:
In [19]:
# pandas 라이브러리에서 csv 파일 읽기2 (header 제거)
import pandas as pd
doc = pd.read_csv("test.csv", header=None)
doc
Out[19]:
In [20]:
# pandas 라이브러리에서 csv 파일 읽기2 (특정 필드만 읽기)
import pandas as pd
doc = pd.read_csv("test.csv", names=['First Name'])
doc
Out[20]: