파이썬 DataFrame.mad 함수를 대신 사용할 수 있는 방법

파이썬 DataFrame.mad 함수를 대신 사용할 수 있는 방법

작성일 2023.06.01댓글 2건
    게시물 수정 , 삭제는 로그인 필요

df['mad'] = df['tmp'].rolling(15).apply(lambda x: pd.Series(x).mad())

위와 같은 구문을 사용하면 실행은 되는데... mad 함수가 없어질 예정이니 다른 방법으로 구현하라고 뜨더라구요~~

To compute the same result, you may do `(df - df.mean()).abs().mean()`
워닝에선 저런 방법을 제시하는데... 저걸 어떻게 적용하는건가요?! ㅜㅠ
코린이라... 뭔가 알려주고 있는데... 어떻게 바꿔야 하는지 모르겠어요~~ ㅜㅠ



profile_image 익명 작성일 -

[ chatGPT 제네레이터 참고 ]

chatGPT 에서는 아래와 같은 방식으로 사용하라고 알려주네요.

만약 pandas의 MAD 함수가 없어지는 경우에는 대안으로 numpy 패키지의 median() 함수와 mean_absolute_deviation() 함수를 사용할 수 있습니다.

다음은 이를 적용한 예시입니다:

import numpy as np import pandas as pd def mad(x): return np.mean(np.abs(x - np.median(x))) window_size = 15 df['mad'] = df['tmp'].rolling(window_size).apply(mad)

여기서는 numpy.median() 함수를 사용하여 윈도우 내 중앙값을 계산하고,

numpy.abs() 함수를 사용하여 각 값과 중앙값의 편차의 절대값을 계산합니다.

마지막으로 numpy.mean() 함수를 사용하여 편차들의 평균을 구합니다.

이를 이용하여 rolling() 함수와 함께 사용하여 DataFrame의 'tmp' 열에 대해 윈도우 크기가 15인 롤링 계산을 수행하고,

각 윈도우에 대한 MAD 값을 'mad' 열에 할당할 수 있습니다.

profile_image 익명 작성일 -

df['mad'] = (df['tmp'] - df['tmp'].mean()).abs().rolling(15).mean()