-
CSV(Comma Separated Values)
몇 가지 필드들을 쉼표( , )로 구분한 텍스트 데이터 및 텍스트 파일
- 확장자: .csv
- 비슷한 포맷으로는 TSV(탭으로 구분) 나 SSV(반각 스페이스로 구분)가 있다.
- 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식
- 아래는 csv 파일을 읽는 코드의 예시이다.
import csv f = open('advertising.csv', 'r', encoding='utf-8') rdr = csv.reader(f) for line in rdr: print(line) f.close()
- 파일을 계속 열고 있을 필요가 없으므로 with as 문을 이용해서 파일을 닫는 과정을 생략하기도 한다.
with open('advertising.csv') as csvfile: rdr = csv.reader(csvfile) for i in rdr: print(i)
csv 파일의 첫번째 줄에 header로서 당장 필요없는 데이터가 있다.
어떻게 없애지?
next 함수를 찾았다.- next() 함수
# skip the headers next(rdr, None)
문자열로 값이 넣어져버렸다. numeric 어찌고 하는 에러가 뜬다...
그래서 float를 사용해서 숫자로 바꿔줬다.for i in rdr: X.append([float(i[1]), float(i[2]), float(i[3] )]) Y.append([float(i[4])])
numpy를 사용하면 코드가 더 깔끔할 수 있다고 한다.
나중에 변경을 해봐야겠다.Pandas로 csv파일 읽기
위 코드로 csv파일을 읽을 경우 결과가 리스트 형식이 되었다.
numpy의 행렬계산을 해야하는데 자꾸 타입 에러가 뜬다..ㅜㅜ
그러던중 Pandas로도 csv 파일을 읽을 수 있다는걸 알게됬다.
이걸 이용하면 결과가 array로 나타나게 할 수 있다.- pandas 임포트
import pandas as pd
- pd로 csv 파일 읽기
data = pd.read_csv("advertising.csv", skiprows=[0,0], header=None) data
skiprows를 이용하여 원하는 행을 제거 할 수 있다.
header=None를 이용해서 헤더를 제거할 수 있다.
- array로 나타내려면 values를 사용해 주면 된다.
data.values
Reference
'AI' 카테고리의 다른 글
파이썬으로 xlsx 파일과 csv 파일 다루기 (0) 2019.09.18 pickle 모듈 (0) 2019.08.21 Mean squared error (0) 2019.08.21 Scikit-learn의 LinearRegression() 함수 (0) 2019.08.21 Scikit-learn의 train_test_split() 사용법 (0) 2019.08.21