[python] 파이썬 pandas에서 데이터를 이상치 처리하는 방법은 무엇인가요?
- 표준 편차 기반 이상치 탐지:
- 이상치는 주로 평균으로부터 표준 편차의 몇 배 떨어진 값으로 정의됩니다.
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)]
- 이상치는 주로 평균으로부터 표준 편차의 몇 배 떨어진 값으로 정의됩니다.
- 백분위수를 이용한 이상치 탐지:
- 백분위수를 사용하여 데이터의 분포를 파악하고, 상하위 n%의 데이터를 이상치로 처리할 수 있습니다.
lower, upper = df['column'].quantile([n/100, 1-(n/100)]) outliers = df[(df['column'] < lower) | (df['column'] > upper)]
- 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)]
데이터에 적합한 방법은 데이터의 특성에 따라 다를 수 있으며, 이상치 처리 전에 데이터 분포를 잘 파악하는 것이 중요합니다.