[python] 파이썬 pandas에서 데이터를 이상치 처리하는 방법은 무엇인가요?
  1. 표준 편차 기반 이상치 탐지:
    • 이상치는 주로 평균으로부터 표준 편차의 몇 배 떨어진 값으로 정의됩니다. mean()std() 함수를 사용하여 표준 편차를 계산한 후, 평균에서 표준 편차의 n 배 이상 떨어진 값을 이상치로 처리할 수 있습니다.
    mean = df['column'].mean()
    std = df['column'].std()
    cutoff = std * n
    lower, upper = mean - cutoff, mean + cutoff
    outliers = df[(df['column'] < lower) | (df['column'] > upper)]
    
  2. 백분위수를 이용한 이상치 탐지:
    • 백분위수를 사용하여 데이터의 분포를 파악하고, 상하위 n%의 데이터를 이상치로 처리할 수 있습니다.
    lower, upper = df['column'].quantile([n/100, 1-(n/100)])
    outliers = df[(df['column'] < lower) | (df['column'] > upper)]
    
  3. IQR(Interquartile Range)을 이용한 이상치 탐지:
    • IQR은 3분위수(Q3)에서 1분위수(Q1)를 뺀 값으로, 상한선은 Q3 + 1.5 * IQR, 하한선은 Q1 - 1.5 * IQR로 계산합니다.
    Q1 = df['column'].quantile(0.25)
    Q3 = df['column'].quantile(0.75)
    IQR = Q3 - Q1
    lower, upper = Q1 - 1.5 * IQR, Q3 + 1.5 * IQR
    outliers = df[(df['column'] < lower) | (df['column'] > upper)]
    

데이터에 적합한 방법은 데이터의 특성에 따라 다를 수 있으며, 이상치 처리 전에 데이터 분포를 잘 파악하는 것이 중요합니다.