[Pandas] 데이터전처리- 이상값 찾기, 처리하기

정만·2025년 4월 1일

데이터분석

목록 보기
39/61

이상값을 찾고 처리하는 방법에 대해 학습하였다.

이상값?

일반적인 데이터 분포에서 벗어난 값, 즉 다른 데이터와 차이가 큰 값을 가진 데이터 포인트.
극단적으로 크거나 작은 값일 수 있다.

데이터분석에서의 이상값

  • 처리법
    - 결측값으로 대체한 다음 결측값 처리하기
    - 이상치를 제거하기
    - 하한 값과 상한 값을 결정한 후 이상치를 대체하기
    - 이상치의 영향을 감소시키는 가중치를 주는 가중치 조정하기

* 사용할 원본 데이터

  • 'price'컬럼의 이상치 여부 확인
    => 1사분위 수, 3사분위 수, IQR이 필요하다.
q1 = airbnb_df['price'].quantile(0.25)  # 1사분위 수 계산
q3 = airbnb_df['price'].quantile(0.75)  # 3사분위 수 계산
iqr = q3 - q1 
  • 1사분위수 - 1.5 iqr 보다 낮은 값과 3사분위수 + 1.5 iqr보다 높은 값을 이상치라고 하기떄문에 아래와 같이 적을 수 있다.
min_limit = q1 - 1.5 * iqr
max_limit = q3 + 1.5 * iqr
airbnb_df[airbnb_df['price'] < min_limit] 
airbnb_df[airbnb_df['price'] > max_limit] 

airbnb_df[(airbnb_df['price'] < min_limit) | (airbnb_df['price'] > max_limit)] 

* 이상값 처리하기 -> 불린 인덱싱 활용

  • 정상 범위에 있는 값들을 불러오기 위해 조건을 설정한다.
condition1 = airbnb_df['price'] >= min_limit
condition2 = airbnb_df['price'] <= max_limit
airbnb_df[(airbnb_df['price'] >= min_limit) & (airbnb_df['price'] <= max_limit)]

=> 이상값이 처리된 것을 확인할 수 있다.

profile
멋있는 어른이 되고싶은 정만이의 벨로그

0개의 댓글