Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 데이터프레임의 행·열별 평균 절대 편차(MAD) 구하기

개요

평균 절대 편차(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를 직접 계산할 수 있습니다.