ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CSV파일 읽기
    AI 2019. 8. 21. 14:37

    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

    위키 백과

    csv 파일 읽기와 쓰기

    pandas로 csv파일 읽기_Blog

    '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

    댓글

© 2019 All rights reserved.