데이터를 직접 입력하는 것이 아닌 파일로 관리한다면 얼마나 편할까?
오늘은 csv파일에서 데이터를 읽어서 그래프에 그려주려 한다.
먼저 실습을 위해 아래처럼 csv 파일을 손수 만들자 ㅎㅎ
A열은 x축 데이터를 의미하고, B열은 y축 데이터를 의미한다.
1. 파이썬 csv 읽기 (Read)
먼저 그래프에서 적용하기 전, 간단하게 코드를 작성해본다.
찬찬히 뜯어볼까?
import csv
→ csv 모듈은 파이썬에 기본으로 내장되어 있어 설치할 필요는 없다.
f = open("C:/Users/user/sample.csv", encoding="cp949")
→ f라는 변수에 sample.csv을 오쁜~ 해준다는 의미이고, 한글도 지원하는 cp949 인코딩을 세팅해 준다.
data = csv.reader(f)
→ csv 모듈의 reader 함수로 f를 읽어 data라는 변수에 넣어준다.
for row in data :
print(row)
→ data 를 한 줄씩 읽어 row에 넣어주고, row를 프린트!
f.close()
→ 열었던 파일을 닫는다.
csv 파일과 그래프를 콜라보 해볼까?
허헛!! 근데 csv 파일을 잘못 만들었네?
라인별로 읽는다면 아래처럼 만들었어야 했는데....
1행은 X축, 2행은 Y축을 의미한다.
아직 데이터를 다루지 못해 어쩔수 없다... 파일을 고치는 수밖에...
그럼에도 불구하고.....
머리를 싸맸지만, 기초 공부를 안 했으니 응용이 될 리가..
일단 후퇴다!!!!
2. 파이썬 csv 쓰기 (Write)
파일을 읽었으니 써야겠지.
csv 파일을 읽어오진 못해도, 파일은 제대로 생성하겠다!
코드는 아까와 비슷하다.
import와 close를 제외하고 본다면,
f = open("C:/Users/user/sample_new.csv", mode="wt", encoding="cp949", newline='')
→ open과 파일 경로 지정 방식은 동일한데, mode 와 newline이 추가되었다.
기본 모드가 읽기이기에 wirte 하려면 모드에 w를 지정해 줘야 한다.
t는 텍스트 모드라고 하니 일단 그렇게 알고 넘어간다...
newline='' 한 줄씩 쓴다는 의미 같다.
newline='' 를 없애면 위에 예시처럼 나타나지 않는다.
writer = csv.writer(f)
→ 쓸 준비를 하고~
writer.writerow([0, 2, 4])
→ 한 줄씩 쓴다.
오늘은 다른 날보다 구글링을 많이 하긴 했는데 시원치 않다..
내일은 pandas를 공부해 csv와 그래프의 콜라보를 이루겠다. 홧팅.
'파이썬 100일 챌린지' 카테고리의 다른 글
[100일 챌린지] 파이썬 int 변환, csv 모듈 숫자 읽기, 이중 for문 #009 (0) | 2021.05.16 |
---|---|
[100일 챌린지] 파이썬에서 자주 쓰는 기초 문법 (list형, for, if) #008 (0) | 2021.05.15 |
[100일 챌린지] Matplotlib 그래프 다양한 팁, 옵션 #006 (0) | 2021.05.14 |
[100일 챌린지] Matplotlib pyplot.plot() 함수 활용하기 #005 (0) | 2021.05.12 |
[100일 챌린지] Matplotlib 설치와 그래프 그려보기 #004 (0) | 2021.05.11 |