Python에서 상대 빈도를 계산하는 방법
상대 빈도는 데이터 세트의 전체 값 수에 비해 특정 값이 데이터 세트에 얼마나 자주 나타나는지 측정합니다.
Python에서 다음 함수를 사용하여 상대 빈도를 계산할 수 있습니다.
def rel_freq (x): freqs = [(value, x.count(value) / len(x)) for value in set(x)] return freqs
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예 1: 숫자 목록의 상대 빈도
다음 코드는 이 함수를 사용하여 숫자 목록의 상대 빈도를 계산하는 방법을 보여줍니다.
#define data data = [1, 1, 1, 2, 3, 4, 4] #calculate relative frequencies for each value in list rel_freq(data) [(1, 0.42857142857142855), (2, 0.14285714285714285), (3, 0.14285714285714285), (4, 0.2857142857142857)]
이 출력을 해석하는 방법은 다음과 같습니다.
- 데이터 세트에서 값 “1”의 상대 빈도는 0.42857 입니다.
- 데이터 세트에서 값 “2”의 상대 빈도는 0.142857 입니다.
- 데이터 세트에서 값 “3”의 상대 빈도는 0.142857 입니다.
- 데이터 세트에서 값 “4”의 상대 빈도는 0.28571 입니다.
모든 상대도수를 합하면 1이 된다는 것을 알 수 있습니다.
예 2: 문자 목록의 상대 빈도
다음 코드는 이 함수를 사용하여 문자 목록의 상대 빈도를 계산하는 방법을 보여줍니다.
#define data data = ['a', 'a', 'b', 'b', 'c'] #calculate relative frequencies for each value in list rel_freq(data) [('a', 0.4), ('b', 0.4), ('c', 0.2)]
이 출력을 해석하는 방법은 다음과 같습니다.
- 데이터 세트에서 값 “a”의 상대 빈도는 0.4 입니다.
- 데이터 세트에서 “b” 값은 상대 빈도가 0.4 입니다.
- 데이터 세트에서 “c” 값은 상대 빈도가 0.2 입니다.
다시 말하지만, 모든 상대 빈도의 합은 1이 됩니다.
예시 3: Pandas DataFrame의 열에 대한 상대 빈도
다음 코드는 이 함수를 사용하여 Pandas DataFrame의 특정 열에 대한 상대 빈도를 계산하는 방법을 보여줍니다.
import pandas as pd #define data data = pd.DataFrame({'A': [25, 15, 15, 14, 19], 'B': [5, 7, 7, 9, 12], 'C': [11, 8, 10, 6, 6]}) #calculate relative frequencies of values in column 'A' rel_freq( list (data['A'])) [(25, 0.2), (19, 0.2), (14, 0.2), (15, 0.4)]
이 출력을 해석하는 방법은 다음과 같습니다.
- 값 “25”는 열에서 상대 빈도가 0.2 입니다.
- 값 “19”는 열에서 상대 빈도가 0.2 입니다.
- 값 “14”는 열에서 상대 빈도가 0.2 입니다.
- 값 “15”는 열에서 상대 빈도가 0.4 입니다.
다시 말하지만, 모든 상대 빈도의 합은 1이 됩니다.