Comment :
Pandas의 시작인
read_csv
에 대하여 정리해보자
먼저 알아야할 것은 바로 해당 함수의 parameter이다. 개수가 상당히 많으나, 유용한 것들이 꽤나 많으므로 숙지하고 많이 사용 및 응용해보도록 하자.
Reference : pandas.read_csv documentation
sep
: Seperator, delimiter, 구분문자, 즉 각각의 데이터값을 무엇으로 구분하여 (하나의 Row와 Column에 해당하는) Cell에 넣을것이냐이다
.dat
, .txt
: |.csv
: , [+] Comma Separated Valueheader
:
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이 너무 많은?)을 어떻게 처리할지
delim_whitespace
:
low_memory
:
실제로 여러 csv파일들을 불러오면서 많이 헷갈렸던 것이 바로
encoding
이다. 어떤 인코딩 방법들이 있는지 확인해보자.
매우 큰 csv파일을 사용하는 경우, 가끔은 csv파일의 일부분만 필요할때가 있다.
ex)빨리 불러서 column들만 확인하고 싶은 경우, 빨리 불러서 csv파일의, 즉 DataFrame의 row, column개수만 파악하고 싶은 경우 등
# DataFrame 맨위 한줄만 불러온다
df = pd.read_csv(path, nrows=1)
이렇게하면 매우 큰 csv파일이라하더라도 매우 빠르게 불러올 수 있음 (columns + 1개의 row) 이는 head()
와는 다른 개념이란걸 알고 있자
# DataFrame에서 원하는 column들만 불러온다
df = pd.read_csv(path, usecols = ['column_1', 'column_99'] )
column의 개수가 1부터 99까지 있는 csv파일을 위와 같이 불러오면
맨 첫번째 컬럼인 column_1
과
맨 마지막 컬럼인 column_99
만 불러올 수 있다.