如何在 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。