[Pandas] read_csv

olxtar·2022년 10월 17일
0
post-thumbnail

Comment :

Pandas의 시작인 read_csv에 대하여 정리해보자



0. Parameter

먼저 알아야할 것은 바로 해당 함수의 parameter이다. 개수가 상당히 많으나, 유용한 것들이 꽤나 많으므로 숙지하고 많이 사용 및 응용해보도록 하자.

Reference : pandas.read_csv documentation

  • sep : Seperator, delimiter, 구분문자, 즉 각각의 데이터값을 무엇으로 구분하여 (하나의 Row와 Column에 해당하는) Cell에 넣을것이냐이다

    • .dat, .txt : |
    • .csv : , [+] Comma Separated Value
  • header :

    • infer : default, '추론하다'의 의미로 DataFrame의 맨 첫번째 Row를 Column들의 이름으로 추론하겠다는 의미임
    • None : (column명으로 사용될 첫번째) row는 없으니 그냥 column명 없이 불러와라
  • names :

  • index_col :

  • usecols : Return a subset of the columns, 즉 넣어주는 column 이름값에 해당하는 column들만 불러온다. [+] list-like or callable 변수를 넣어줘야함

  • squeeze :

  • prefix : (따로 header가 없을 경우) 넣어준 값을 prefix로 사용한다
    ex) 'X' for X0, X1, ...

  • dtype : Type name or dict of column, 즉 바로 data type만 입력하면 전체 데이터를 해당 data type으로 불러오고, Dictionary of column : dtype으로 입력하면 각 Column을 해당 dtype으로 불러온다.

  • engine : c or python or pyarrow

  • skiprows : list-like, int or callable, 생략할 row index값을 넣어주면 해당 순서의 row를 생략

  • na_values : 입력된 값을 NA/NaN값으로 처리

  • keep_default_na :

  • na_filter :

  • verbose :

  • skip_blank_lines :

  • encoding : ex) 'cp949', 'utf-8', 'euc-kr'

  • encoding_errors : 'strict' or 'ignore' etc

  • error_bad_lines :

  • warn_bad_lines :

  • on_bad_lines : bad line(a line with too many fields, 즉 sep이 너무 많은?)을 어떻게 처리할지

    • 'error' : raise an Exception
    • 'warn' : raise a warning and skip that line
    • 'skip' : skip bad lines
  • delim_whitespace :

  • low_memory :




1. Encoding

실제로 여러 csv파일들을 불러오면서 많이 헷갈렸던 것이 바로 encoding이다. 어떤 인코딩 방법들이 있는지 확인해보자.




2. 일부분만 부르기

매우 큰 csv파일을 사용하는 경우, 가끔은 csv파일의 일부분만 필요할때가 있다.
ex) 빨리 불러서 column들만 확인하고 싶은 경우, 빨리 불러서 csv파일의, 즉 DataFrame의 row, column개수만 파악하고 싶은 경우 등


2-1. nrows

# DataFrame 맨위 한줄만 불러온다
df = pd.read_csv(path, nrows=1)

이렇게하면 매우 큰 csv파일이라하더라도 매우 빠르게 불러올 수 있음 (columns + 1개의 row) 이는 head()와는 다른 개념이란걸 알고 있자


2-2. usecols

# DataFrame에서 원하는 column들만 불러온다
df = pd.read_csv(path, usecols = ['column_1', 'column_99'] )

column의 개수가 1부터 99까지 있는 csv파일을 위와 같이 불러오면
맨 첫번째 컬럼인 column_1
맨 마지막 컬럼인 column_99만 불러올 수 있다.


2-3. skiprows

profile
예술과 기술

0개의 댓글