개요
평균 절대 편차(Mean Absolute Deviation, MAD)는 각 데이터 값이 평균으로부터 얼마나 떨어져 있는지를 나타내는 통계 지표입니다. pandas 라이브러리의 mad() 메서드를 사용하면 데이터프레임의 열(컬럼) 또는 행 기준으로 이 값을 손쉽게 계산할 수 있습니다.
해결 방법
다음과 같은 데이터프레임이 있고, 각 열과 행의 평균 절대 편차가 아래처럼 출력된다고 가정해 보겠습니다.
mad of columns: Column1 0.938776 Column2 0.600000 dtype: float64 mad of rows: 0 0.500 1 0.900 2 0.650 3 0.900 4 0.750 5 0.575 6 1.325 dtype: float64
이 문제는 아래 단계를 따라 해결할 수 있습니다.
데이터프레임을 정의합니다.
열(column) 기준의 평균 절대 편차를 계산합니다.
df.mad()
행(row) 기준의 평균 절대 편차를 계산합니다.
axis=1옵션을 사용합니다.
df.mad(axis=1)
예제 코드
아래 코드를 통해 실제 동작 과정을 확인해 보겠습니다.
import pandas as pd
data = {"Column1": [6, 5.3, 5.9, 7.8, 7.6, 7.45, 7.75],
"Column2": [7, 7.1, 7.2, 6, 6.1, 6.3, 5.1]}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
print("mad of columns:\n", df.mad())
print("mad of rows:\n", df.mad(axis=1))실행 결과
DataFrame is:
Column1 Column2
0 6.00 7.0
1 5.30 7.1
2 5.90 7.2
3 7.80 6.0
4 7.60 6.1
5 7.45 6.3
6 7.75 5.1
mad of columns:
Column1 0.938776
Column2 0.600000
dtype: float64
mad of rows:
0 0.500
1 0.900
2 0.650
3 0.900
4 0.750
5 0.575
6 1.325
dtype: float64참고: pandas 2.0 이상에서의 대체 방법
DataFrame.mad() 메서드는 pandas 1.5.0에서 폐기(deprecated)되었으며, pandas 2.0부터 완전히 제거되었습니다. 최신 버전을 사용하는 경우 아래와 같이 직접 계산하면 동일한 결과를 얻을 수 있습니다.
열 기준 MAD:
(df - df.mean()).abs().mean()행 기준 MAD:
(df.sub(df.mean(axis=1), axis=0)).abs().mean(axis=1)
즉, 각 값에서 평균을 뺀 뒤 절댓값을 취하고, 그 평균을 구하는 방식으로 MAD를 직접 계산할 수 있습니다.