데이터 전처리: 정확도 및 변환

ㅁ 정확도 및 변환

1. inplace 처리

ㅇ 정의:
– 데이터프레임이나 시리즈를 메서드 실행 시 원본 객체를 직접 수정하는 방식.

ㅇ 특징:
– 메모리 절약 가능.
– 반환값이 None인 경우가 많음.
– 원본 데이터가 변경되므로 복구 어려움.

ㅇ 적합한 경우:
– 대용량 데이터 처리 시 메모리 사용 최소화가 필요할 때.
– 중간 결과 저장이 불필요한 경우.

ㅇ 시험 함정:
– inplace=True 옵션 사용 시 반환값을 변수에 할당하면 None이 저장됨.
– 일부 메서드는 inplace 옵션을 지원하지 않음.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: df.dropna(inplace=True) 실행 후 df는 결측치가 제거된 상태이다.
– X: df.dropna(inplace=True)의 반환값을 df2에 할당하면 df2에 변경된 데이터프레임이 저장된다.

================================

2. DataFrame dropna

ㅇ 정의:
– 결측치(NaN)가 포함된 행 또는 열을 제거하는 메서드.

ㅇ 특징:
– axis=0(행), axis=1(열) 지정 가능.
– how=’any’ 또는 ‘all’로 삭제 조건 설정.
– subset 매개변수로 특정 컬럼만 검사 가능.

ㅇ 적합한 경우:
– 결측치가 적고, 해당 데이터가 분석에 중요하지 않을 때.

ㅇ 시험 함정:
– how=’all’은 모든 값이 NaN인 경우만 삭제.
– inplace 옵션 사용 시 반환값이 None.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: df.dropna(axis=1, how=’all’)은 모든 값이 NaN인 열만 삭제한다.
– X: df.dropna()는 기본적으로 열을 삭제한다.

================================

3. fillna 전략

ㅇ 정의:
– 결측치를 특정 값으로 대체하는 메서드.

ㅇ 특징:
– value 매개변수로 단일 값, 딕셔너리, 시리즈 지정 가능.
– method=’ffill'(앞 값 채우기), ‘bfill'(뒤 값 채우기) 지원.
– limit로 채우기 횟수 제한 가능.

ㅇ 적합한 경우:
– 결측치가 많지만 패턴이 있어 보간 가능할 때.
– 통계량(평균, 중앙값 등)으로 대체 시 데이터 왜곡이 적을 때.

ㅇ 시험 함정:
– method와 value를 동시에 지정하면 오류 발생.
– inplace 옵션 주의.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: df[‘col’].fillna(df[‘col’].mean())은 해당 컬럼의 평균으로 결측치를 채운다.
– X: df.fillna(method=’ffill’, value=0)는 정상적으로 실행된다.

================================

4. 반올림 및 타입 변환

ㅇ 정의:
– 반올림: 수치 데이터를 지정한 소수점 자리까지 반올림.
– 타입 변환: 데이터 타입을 다른 형식으로 변환.

ㅇ 특징:
– round(decimals=n)으로 반올림.
– astype()으로 타입 변환.
– 변환 시 데이터 손실 가능.

ㅇ 적합한 경우:
– 수치 정밀도 조정 필요 시.
– 메모리 최적화 또는 연산 효율 개선 시.

ㅇ 시험 함정:
– astype(int) 변환 시 NaN 존재하면 오류.
– 반올림은 기본적으로 “은행가 반올림” 방식 사용.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: df[‘col’].round(2)는 소수점 둘째 자리까지 반올림한다.
– X: df[‘col’].astype(int)는 NaN이 있어도 자동으로 변환된다.

ㅁ 추가 학습 내용

시험 대비 핵심 정리

1. Pandas 2.0 이후 inplace 처리
– 일부 메서드에서 inplace 매개변수 지원이 중단될 수 있음
– inplace 대신 반환 값을 변수에 재할당하는 방식 사용 권장

2. dropna 주요 매개변수
– axis: 0(행), 1(열) 기준 삭제
– how: ‘any'(하나라도 NaN이면 삭제), ‘all'(모두 NaN이면 삭제)
– subset: 특정 열이나 행만 검사하여 NaN 여부 판단

3. fillna 주요 매개변수
– value: 채울 값 지정
– method: ‘ffill'(이전 값으로 채움), ‘bfill'(다음 값으로 채움)
– axis: 채우는 방향 지정
– limit: 연속된 NaN 채우기 개수 제한
– 시계열 데이터에서 method=’ffill’은 결측치 이전 값으로 채우고, ‘bfill’은 이후 값으로 채움. 결측치 위치에 따라 결과 달라짐

4. 반올림 관련
– round(): Pandas DataFrame/Series 전용, 각 열별 소수점 자리 지정 가능
– numpy.around(): NumPy 배열 기반 반올림, 반환 타입이 ndarray일 수 있음

5. 형 변환 관련
– astype(): 지정한 dtype으로 변환, 변환 불가 시 오류 발생
– pd.to_numeric(): 숫자로 변환, errors=’coerce’ 사용 시 변환 불가 값은 NaN으로 처리하여 안전한 변환 가능

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*