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만 불러올 수 있다.