10. 데이터 전처리

j_hyun11·2022년 1월 5일
0

FUNDAMENTAL

목록 보기
2/11

1. 결측치

1) 결측치 처리 방법

  • 결측값을 제거
  • 결측값을 다른 값으로 대체
    (새로운 범주내 특정값, 최빈값, 예측값,... )

2) 결측치 여부 확인

# 컬럼별 결측치 개수
print('전체 데이터 수:', len(df))

# 행별 결측치 확인
df[df.isnull().any(axis=1)]

2. 중복된 데이터

  • 행별로 값이 유일해야 한다면 중복된 데이터를 제거
# 중복된 데이터 여부
df[df.duplicated()]

# 중복된 데이터 제거
df.drop_duplicates(inplace=True)

# id가 중복된 경우 맨 나중에 들어온 값 남기고 제거
df.drop_duplicates(subset=['id'], keep='last')

3. 이상치

  • 대부분 값의 범위에서 벗어나 극단적으로 크거나 작은 값

1) 이상치 처리 방법

  • 이상치 삭제
  • 이상치를 다른 값으로 대체(최댓값, 최솟값, ...)
  • 예측값 활용
  • 수치형 데이터를 범주형으로 바꿈
  • Min-Max Scaling

2) 이상치 확인

  • z-score method : 평균과 표준편차를 이용
  • IQR method : 사분위 범위수 이용

4. 정규화(Outlier)

  • 표준화(Standardization) : 데이터의 평균은 0, 분산은 1로 변환
  • Min-Max Scaling : 데이터의 최솟값은 0, 최댓값은 1로 변환

5. 원-핫 인코딩(One-Hot Encoding)

  • 카테고리별 이진 특성을 만들어 해당하는 특성만 1, 나머지는 0으로 만드는 방법
# get_dummies으로 국가명을 0, 1로 변경
pd.get_dummies(df['국가명'])

6. 구간화(Binning/bucketing)

  • 연속적인 데이터를 구간을 나눠 분석할 때 사용

  • pandas의 cut 과 qcut을 이용

# 6개 구간으로 나눠짐
pd.cut(salary, bins=6)

# 백분율 기반으로 5개 구간으로 나눠짐
pd.qcut(salary, q=5)

0개의 댓글