All thing of the world!

read_csv 설명 : python pandas 함수 본문

IT/python

read_csv 설명 : python pandas 함수

WorldSeeker 2022. 3. 23. 17:24

1. 함수의 목적

    pandas 함수로, csv 데이터 파일을 라벨이 있는 2차원 데이터 구조의 Dataframe변환하여 반환한다. 

 

2. 샘플을 통한 개념 퀵뷰

3. 사용방법 

        pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=None, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None)

 

 

4. 함수 PARAMETER 설명
 
[filepath_or_buffer] : str, path object, or file-like object

모든 유효한 문자열 경로를 허용. 유효한 URL도 가능. 유효한 URL이란 http, ftp, s3, gs 및 파일이 포함된다.

파일 URL의 경우 호스트가 필요하다. 로컬 파일은 file://localhost/path/to/table.csv 와 같이 입력 가능하다.

경로 객체를 사용할 경우 pandas는 모든 os.PathLike를 허용한다. 

 

[sep] : str, default ‘\t’ 

사용할 구분 기호를 지정한다.

sep가 None이면 향후 읽기 작업시 C 엔진은 자동으로 구분자를 감지할 수 없지만 Python 구문 분석 엔진은 구분자를 감지할 수 있습니다. 즉, Python은 csv.Sniffer에 의해 구분자가 자동으로 감지된다.

 

[delimiter] : str, default None

sep의 별칭

 

[header] : int, list of int, None, 기본값 ‘infer’

열 이름으로 사용할 행 번호를 지정한다.

기본 동작은 열 이름을 유추하는 것입이며, 전달된 값이 없으면 header=0과 동일.

열 이름이 명시적으로 전달되면 동작은 header=None과 동일.

기존 이름을 바꿀 수 있도록 명시적으로 header=0을 전달.

다중 행위치를 [0,1,3]와 같은 형태로 지정가능.

 

[names] : array-like, optional

사용할 열 이름 목록.

파일에 헤더 행이 포함되어 있으면 명시적으로 header=0을 전달하여 열 이름을 재정의해야 한다.

목록의 중복은 허용하지 않음.

 

[index_col] : int, str, sequence of int / str, or False, optional, default None

문자열 이름 또는 열 인덱스로 제공되는 DataFrame의 행 레이블로 사용할 열.

int / str의 시퀀스가 주어지면 MultiIndex가 사용된다.

[usecols] : list-like or callable, optional

가져올 열을 지정한다. 파일내의 열이 목록과 같은 경우 정수 인덱스 혹은 컬럼명을 지정한다.

본 파라미터를 사용하면 헤더 행은 데이터로 취급되지 않는다.

예를 들어 usecols 매개변수가 [0, 1] 이라면, 요소 순서는 무시되므로 usecols=[0, 1]은 [1, 0]과 동일하다. .

[mangle_dupe_cols] : bool, default True

중복 열 'X'...'X'는 'X'...'X' 아닌 'X', 'X.1', ...'X.N'의 형태로 컬럼명이 지정된다. False로 지정하면 데이터를 덮어쓴다.

 

[dtype] : Type name or dict of column -> type, optional

열의 데이터 유형. 예를 들어 {'a': np.float64, 'b': np.int32, 'c': 'Int64'}.

 

[engine] : {‘c’, ‘python’, ‘pyarrow’}, optional

pasing 엔진을 선택, C 및 pyarrow 엔진은 더 빠르지만 python 엔진이 현재 기능이 더 완벽하다. 멀티스레딩은 현재 pyarrow 엔진에서만 지원된다. pyasrrow 엔진은 1.4.0에서 추가됨.

 

[converters] : dict, optional

특정 열의 값을 변환하기 위한 함수 사전. 키는 정수 또는 열 이름을 사용가능하다.

 

[true_values] : list, optional

True로 간주할 값

 

[false_values] : list, optional

False로 간주할 값

 

[skipinitialspace] : bool, default False

True로 설정하면 delimiter 뒤의 공백을 건너뛴다.

 

[skiprows] : list-like, int or callable, optional

파일 시작 부분에서 건너뛸 줄 번호(0-인덱싱됨) 또는 건너뛸 줄 수(int)입니다.

[skipfooter] : int, default 0

건너뛸 파일 하단의 줄 수(engine='c'에서 지원되지 않음)

 

[nrows] : int, optional

읽을 파일의 행 수. 큰 파일을 읽을 때 유용하다.

 

[na_values] : scalar, str, list-like, or dict, optional

NA/NaN으로 인식할 추가 문자열. 기본적으로 다음 값은 NaN으로 해석된다.

'', '#N/A', '#N/AN/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '<NA>', 'N/A', 'NA', 'NULL', 'NaN', 'n /a', 'nan', 'null'.

 

[keep_default_na] : bool, default True

데이터를 구문 분석할 때 기본 NaN 값을 포함할지 여부. na_values 전달 여부에 따라 다음과 같이 동작한다.
- keep_default_na가 True이고 na_values가 지정되면 na_values가 구문 분석에 사용되는 기본 NaN 값에 추가
- keep_default_na가 True이고 na_values가 지정되지 않은 경우 기본 NaN 값만 구문 분석에 사용
- keep_default_na가 False이고 na_values가 지정되면 na_values로 지정된 NaN 값만 구문 분석에 사용
- keep_default_na가 False이고 na_values가 지정되지 않은 경우 문자열은 NaN으로 구문 분석되지 않음
- na_filter가 False로 전달되면 keep_default_na 및 na_values 매개변수가 무시됨

 

[na_filter] : bool, default True

누락된 값 (빈 문자열 및 na_values 값)를 감지한다. NA가 없는 데이터에서 na_filter=False를 전달하면 대용량 파일 읽기 성능이 향상된다.

 

[verbose] : bool, default False

non-numeric 컬럼에 있는 NA 값의 수를 표시할지 말지

 

[skip_blank_lines] : bool, default True

True이면 빈줄을 NaN 값으로 해석하지 않고 건너뜀

 

[parse_dates] : bool or list of int or names or list of lists or dict, default False

bool -> True이면 인덱스 구문 분석을 시도한다.
list of int or names -> 예를 들어 [1, 2, 3]인 경우 -> 1, 2, 3 열을 각각 별도의 날짜 열로 간주하고 구문 분석
list of lists -> 예를 들어 [[1, 3]]인 경우  열 1과 3을 결합하고 단일 날짜 열로 구문 분석
dict ->  예를 들어 {'foo' : [1, 3]} -> 열 1, 3을 날짜로 구문 분석하고 결과 'foo'를 호출

 

[infer_datetime_format] : bool, default False

parse_dates가 활성화되었고, 이 파라미터를 True로 전달하면  pandas는 열의 날짜/시간 문자열 형식을 추론하려고 시도하고 추론가능할 경우 더 빠른 구문 분석 방법으로 전환한다. 최대 구문 분석 속도가 5-10배 증가할 수 있다.

 

[keep_date_col] : bool, default False

이 파라미터를 True로 하고 parse_dates가 여러 열을 결합하도록 지정하는 경우 원래 열을 유지한다.

 

[date_parser] : function, optional

문자열 열의 시퀀스를 datetime 배열로 변환하는데 사용할 함수.

기본값은 dateutil.parser.parser를 사용하여 변환을 수행한다. Pandas는 세 가지 다른 방법으로 date_parser를 호출하려고 시도하며 예외가 발생하면 다음으로 진행함.

1) 하나 이상의 배열(parse_dates에서 정의한 대로)을 인수로 전달한다

2) parse_dates에 의해 정의된 열의 문자열 값을 단일 배열로 연결(행 단위)하고 전달합니다.

3) 하나 이상의 문자열(parse_dates에 의해 정의된 열에 해당)을 인수로 사용하여 각 행에 대해 date_parser를 한 번 호출한다

 

[dayfirst] : bool, default False

DD/MM 형식.

 

[cache_dates] : bool, default True

True인 경우 변환된 고유한 날짜를 캐시를 사용하여 날짜/시간 변환에 적용.

중복 날짜 문자열, 특히 시간대 오프셋이 있는 문자열을 구문 분석할 때 속도가 크게 향상된다.

0.25.0버전부터 추가됨.

 

[iterator] : bool, default False

반복을 위해 TextFileReader 객체를 반환하거나 get_chunk()로 chunk를 가져옵니다.

 

[chunksize] : int, optional

반복을 위해 TextFileReader 객체를 반환. iterator and chunksize 자세한 정보는  IO Tools docs 참고.

 

[compression] : str or dict, default ‘infer’

압축 해제.

'infer' 및 '%s'가 경로에서 '.gz', '.bz2', '.zip', '.xz' 또는 '.zst' 확장자를 압축 파일로 감지. 'zip'을 사용하는 경우 ZIP 파일에는 읽을 데이터 파일이 하나만 포함되어야 한다. 압축을 풀지 않으려면 None 으로 설정한다. 

 

[thousands] : str, optional

천단위로 인식할 문자

 

[decimal] : str, default ‘.’

소수점으로 인식할 문자

 

[lineterminator] : str (length 1), optional

파일의 줄을 나누는 문자. C 파서에서만 유효.

 

[quotechar] : str (length 1), optional

인용된 항목의 시작과 끝을 나타내는 데 사용되는 문자. 

 

[doublequote] : bool, default True

quotechar가 지정되고 quoting is not QUOTE_NONE일 경우 필드 내부에 있는 두 개의 연속적인 quotechar 요소를 단일 인용 문자 요소로 해석할지 여부.

 

[escapechar] : str (length 1), optional

이스케이프로 인식할 문자

 

[comment] : str, optional

줄의 나머지 부분을 구문 분석하지 않는다. 줄의 시작 부분에 파라미터로 제공한 문자가 있는 경우 해당 줄은 모두 무시된다.  

 

[encoding] : str, optional

읽기/쓰기 시 사용할 인코딩(예: 'utf-8'). List of Python standard encodings .

 

[encoding_errors] : str, optional, default “strict”

인코딩 에러 발생시 어떻게 처리할 것인가. List of possible values .

 

[on_bad_lines] : {‘error’, ‘warn’, ‘skip’} or callable, default ‘error’

잘못된 줄(필드가 너무 많은 줄)을 만났을 때 수행할 작업을 지정한다
- 'error' : 잘못된 줄을 만나면 예외를 발생
- 'warn' : 잘못된 줄을 만나면 경고를 표시하고 해당 줄을 건너뜀
- 'skip' : 잘못된 줄을 만나면 예외처리나 경고하지 않고 건너뜀

 

[delim_whitespace] : bool, default False

공백(예: ' ' 또는 ' ')을 구분 기호로 사용할지 여부. sep='\s+'를 설정하는 것과 동일하다.

이 옵션이 True로 설정되면 구분 기호 매개변수에 대해 아무 것도 전달하지 않아야 한다.

 

[memory_map] : bool, default False

filepath_or_buffer에 대해 파일 경로가 제공되면 파일 개체를 메모리에 직접 매핑하고 거기에서 직접 데이터에 액세스한다. 이 옵션을 사용하면  I/O 오버헤드가 없기 때문에 성능을 향상시킬 수 있음

 

[storage_options] : dict, optional

특정 스토리지 연결시 사용하는 추가 옵션. 예: 호스트, 포트, 사용자 이름, 암호 등.

HTTP(S) URL의 경우 키-값 쌍이 헤더 옵션으로 urllib에 전달된다.

다른 URL(예: "s3://" 및 "gcs://"로 시작)의 경우 키-값 쌍이 fsspec으로 전달된다.

자세한 내용은  fsspec와 urllib를 참조.

1.2버전에서 추가된 파라미터.

 

5. 다양한 샘플표현

 

 

 

끝.

 

Comments