팬더에서 가중 평균을 계산하는 방법


다음 함수를 사용하여 Pandas에서 가중 평균을 계산할 수 있습니다.

 def w_avg(df, values, weights):
    d = df[values]
    w = df[weights]
    return (d*w). sum () / w. sum ()

다음 예에서는 이 구문을 실제로 사용하는 방법을 보여줍니다.

예시 1: 팬더 간 가중 평균

다음 코드는 “가격”을 값으로 사용하고 “금액”을 가중치로 사용하여 가중 평균 함수를 사용하여 주어진 데이터 세트에 대한 가중 평균을 계산하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' sales_rep ': ['A', 'A', 'A', 'B', 'B', 'B'],
                   ' price ': [8, 5, 6, 7, 12, 14],
                   ' amount ': [1, 3, 2, 2, 5, 4]})

#view DataFrame
df

	sales_rep price amount
0 to 8 1
1 to 5 3
2 to 6 2
3 B 7 2
4 B 12 5
5 B 14 4

#find weighted average of price
w_avg(df, ' price ', ' amount ')

9.705882352941176

“가격”의 가중평균은 9,706 으로 나옵니다.

예시 2: Pandas의 Groupby 및 가중 평균

다음 코드는 가중 평균 함수를 사용하여 영업사원 별로 그룹화된 가격의 가중 평균을 계산하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' sales_rep ': ['A', 'A', 'A', 'B', 'B', 'B'],
                   ' price ': [8, 5, 6, 7, 12, 14],
                   ' amount ': [1, 3, 2, 2, 5, 4]})

#find weighted average of price, grouped by sales rep
df. groupby (' sales_rep '). apply (w_avg, ' price ', ' amount ')

sales_rep
A 5.833333
B 11.818182
dtype:float64

우리는 다음을 볼 수 있습니다:

  • 영업사원 A의 ‘가격’ 가중평균은 5,833 입니다.
  • ‘영업사원 B 가격’의 가중평균은 11,818 입니다.

추가 리소스

Pandas에서 두 열을 비교하는 방법
Pandas에서 열의 합계를 계산하는 방법
Pandas에서 열의 평균을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다