저에게 만큼은 찾아오지 않을 것 같던 취준 시즌도 마침내 왔습니다. 그리고 삼성전자 인턴직무 자기소개서 문항을 보고 혼란에 빠졌습니다. 엔지니어 관련 프로젝트를 쓸 게 없더군요. 깔끔하게 포기하고 할 수 있는 것에 집중하기로 했습니다. 한동안은 데이터 분석 공부를 할 예정입니다. 이에 맞춰, CSV 기본 이용 방법에 대해 학습합니다.
* 본 글은 위 영상을 참고했습니다.
0. CSV란 무엇인가
CSV (comma-separated values)
: 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일
CSV 파일의 특징은 다음과 같습니다.
- 별도의 프로그램 없이 생성 및 편집 가능
- 데이터 분석 필드에서 가장 일반적인 파일 형식
1. CSV 파일 다운받기
일반인이 가장 쉽게 구할 수 있는 빅데이터는 공공데이터입니다. 저는 이 글에서 기상청 자료를 활용했습니다.
기후통계분석 - 기온분석에서 대구의 기온데이터를 모두 받았습니다. 클릭하면 엑셀로 연결됩니다.
진짜 쉼표로 구분된 데이터인 것을 확인할 수 있습니다.
2. CSV 열기/읽기/출력
import csv
f = open('Weather.csv') #파일 열기
data = csv.reader(f) #파일 읽기
for row in data :
if not len(row) :
pass
else: print(row) #모든 데이터 출력
f.close()
메모장으로 보니 앞에 공백이 있었습니다. 이게 \t로 나타났네요. 일단 무시하고 넘어가겠습니다.
출력값 기간 밑에 빈 리스트가 있습니다. 이건 len 함수를 통해 구분할 수 있습니다. len 함수는 빈 칸을 false로 인식합니다.
3. CSV 특정 행 추출
import csv
f = open('Weather.csv') #파일 열기
data = csv.reader(f) #파일 읽기
for row in data :
if not len(row) :
pass
else: print(row[0].strip(), row[-1]) #첫번째 열 (공백제거), 마지막 열 출력
f.close()
데이터의 행을 차례로 읽어 리스트를 가져오는 방식이므로, 리스트 원소를 반복적으로 추출하면 열이 됩니다.
앞서 보았던 \t\t\t 가 공백으로 나오길래, strip 함수로 지워줬습니다.
이외에, 영상에 나온 것처럼 if를 이용해 공백을 뛰어넘거나 float로 연산을 할 수 있습니다. 제가 사용하는 파일이 csv 라이브러리로 다 처리하기엔 무리가 있기 때문입니다. 다음 글에서 pandas 소개와 함께 연산 해보겠습니다.