학습목표
- CSV 읽기, 쓰기
- XSL, XLSX 읽기
- 패키지 설치
csv 파일을 읽어올때 사용되는 가장 기본이 되는 코드이다.
import csv
with open("./resource/sample1.csv", 'r') as f:
reader = csv.reader(f)
print(reader)
reader의 형식을 보기 위한 코드는 다음과 같이 작성을 한다. ( 형식확인을 위한 절차 )
print(type(reader))
print(dir(reader))
csv 파일에 있는 내용을 불러오기 위한 코드는 다음과 같이 작성한다.
for c in reader:
print(c)
해더(파란색) 스킵을 위한 코드는 다음과 같이 작성되며 작성된 횟수만큼 결과값의 맨위에서부터 생략이 된다.
next(reader)
- 결과 값 :
['번호', '이름', '가입일시', '나이']
['1', '김정수', '2017-01-19 11:30:00', '25']
['2', '박민구', '2017-02-07 10:22:00', '35']
['3', '정순미', '2017-01-22 09:10:00', '33']
['4', '김정현', '2017-02-22 14:09:00', '45']
['5', '홍미진', '2017-04-01 18:00:00', '17']
['6', '김순철', '2017-05-14 22:33:07', '22']
['7', '이동철', '2017-03-01 23:44:45', '27']
['8', '박지숙', '2017-01-11 06:04:18', '30']
['9', '김은미', '2017-02-08 07:44:33', '51']
['10', '장혁철', '2017-12-01 13:01:11', '16']
[ delimiter ] 코드를 활용하여 구분되는 부분을 지정할 수 있다.
with open("./resource/sample2.csv", 'r') as f:
reader = csv.reader(f, delimiter = '|')
print(reader)
print(type(reader))
print(dir(reader))
print()
for c in reader:
print(c)
CSV 파일을 딕셔너리로 정리하기 위한 코드는 다음과 같이 작성한다.
print("P. 03")
with open('./resource/sample1.csv','r') as f:
reader = csv.DictReader(f)
for c in reader:
print(c)
딕셔너리에서 Key와 Values로 나눠서 표현하고자하면 다음과 같이 코드를 작성한다.
with open('./resource/sample1.csv','r') as f:
reader = csv.DictReader(f)
for c in reader:
for k, v in c.items():
print(k,v)
print("-------------------------")
- 결과 값 :
번호 9
이름 김은미
가입일시 2017-02-08 07:44:33
나이 51
-------------------------
번호 10
이름 장혁철
가입일시 2017-12-01 13:01:11
나이 16
-------------------------
csv 파일을을 생성하기 위해서는 리스트를 작성하고 다음과 같이 코드를 작성한다. 그러나 하나의 리스트는 [ 한 줄 ]로 들어간다.
w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
with open('./resource/sample3.csv', 'w') as f:
wt = csv.writer(f)
for v in w:
wt.writerow(v)
이를 보완하기 위해서 [ newline ]을 활용하여 줄 바꿈처리를 어떻게 할지를 지정한다.
w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
with open('./resource/sample3.csv', 'w', newline='') as f:
wt = csv.writer(f)
for v in w:
wt.writerow(v)
[ For ] 문을 활용하지 않고 csv 파일을 생성할시 다음과 같이 코드를 작성한다.
with open('./resource/sample4.csv','w',newline='') as f:
wt = csv.writer(f)
wt.writerows(w)
하나하나 검수를 할 시에는 [ writerow ]로 코드를 작성하며 그렇지 않고 검수가 끝난 데이터의 경우(모든 데이터를 넣을 시)의 경우에는 [ writerows ]로 코드를 작성한다.
# XSL, XLSX
# openpyx1, xlsxwriter, xlrd, xlwt, xlutils
# pandas를 주로 사용 (openpyxl, xlrd)
# pip install xlrd
# pip install openpyxl
# pip install pandas
엑셀 ( sheetname=시트명 or 숫자 / header=숫자 / skiprow=숫자(넘어간다) )
import pandas as pd
xlsx = pd.read_excel('./resource/sample.xlsx')
head 명령어는 위에서 부터 5개의 데이터를 불러온다.
print(xlsx.head())
tail 명령어는 밑에서부터 5개의 데이터를 불러온다.
print(xlsx.tail())
shape 명령어는 엑셀데이터의 행과 열의 개수를 파악해준다.
print(xlsx.shape)
CSV 또는 EXCEL 파일로 생성 방법 (기초)
xlsx.to_excel('./resource/result.xlsx', index=False)
xlsx.to_csv("./resource/reslut.scv", index=False)
import csv
with open("./resource/sample1.csv", 'r') as f:
reader = csv.reader(f)
print(reader)
print(type(reader))
print(dir(reader))
for c in reader:
print(c)
해더(파란색) 스킵을 위한 코드는 다음과 같이 작성되며 작성된 횟수만큼 결과값의 맨위에서부터 생략이 된다.
next(reader)
- 결과 값 :
['번호', '이름', '가입일시', '나이']
['1', '김정수', '2017-01-19 11:30:00', '25']
['2', '박민구', '2017-02-07 10:22:00', '35']
['3', '정순미', '2017-01-22 09:10:00', '33']
['4', '김정현', '2017-02-22 14:09:00', '45']
['5', '홍미진', '2017-04-01 18:00:00', '17']
['6', '김순철', '2017-05-14 22:33:07', '22']
['7', '이동철', '2017-03-01 23:44:45', '27']
['8', '박지숙', '2017-01-11 06:04:18', '30']
['9', '김은미', '2017-02-08 07:44:33', '51']
['10', '장혁철', '2017-12-01 13:01:11', '16']
with open("./resource/sample2.csv", 'r') as f:
reader = csv.reader(f, delimiter = '|')
print(reader)
print(type(reader))
print(dir(reader))
print()
for c in reader:
print(c)
print("P. 03")
with open('./resource/sample1.csv','r') as f:
reader = csv.DictReader(f)
for c in reader:
print(c)
with open('./resource/sample1.csv','r') as f:
reader = csv.DictReader(f)
for c in reader:
for k, v in c.items():
print(k,v)
print("-------------------------")
- 결과 값 :
번호 9
이름 김은미
가입일시 2017-02-08 07:44:33
나이 51
-------------------------
번호 10
이름 장혁철
가입일시 2017-12-01 13:01:11
나이 16
-------------------------
w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
with open('./resource/sample3.csv', 'w') as f:
wt = csv.writer(f)
for v in w:
wt.writerow(v)
w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
with open('./resource/sample3.csv', 'w', newline='') as f:
wt = csv.writer(f)
for v in w:
wt.writerow(v)
with open('./resource/sample4.csv','w',newline='') as f:
wt = csv.writer(f)
wt.writerows(w)
# XSL, XLSX
# openpyx1, xlsxwriter, xlrd, xlwt, xlutils
# pandas를 주로 사용 (openpyxl, xlrd)
# pip install xlrd
# pip install openpyxl
# pip install pandas
import pandas as pd
xlsx = pd.read_excel('./resource/sample.xlsx')
print(xlsx.head())
print(xlsx.tail())
print(xlsx.shape)
xlsx.to_excel('./resource/result.xlsx', index=False)
xlsx.to_csv("./resource/reslut.scv", index=False)
댓글 없음:
댓글 쓰기