Python 频率表简介

描述几个类别出现频率的表格称为频率表这种特殊类型的表对于了解数据集中包含的值的分布特别有帮助。本教程将引导您完成在 Python 中创建频率表的过程。我们将在接下来的几节中介绍以多种不同方式实现相同内容的方法。

另请阅读:计算 Pandas Dataframe 行数的 6 种方法


方法 1 – 借助 value_counts() 函数

第一种方法是使用该value_counts()函数,该函数将返回一个序列,其中包含所有值列表中唯一值的计数。结果将按descending顺序排列,这意味着第一个元素是最常出现的元素。

1
2
3
4
5
6
7
8
9
import pandas as pd
 
data = pd.Series([1, 2, 5, 2, 3, 3, 3, 3, 4, 4, 5])
 
print("The Dataset is : ")
print(data)
 
print("\nFrequency Table for the data : ")
print(data.value_counts())
The Dataset is :
0     1
1     2
2     5
3     2
4     3
5     3
6     3
7     3
8     4
9     4
10    5
dtype: int64
 
Frequency Table for the data :
3    4
2    2
5    2
4    2
1    1

方法2——借助 crosstab ()函数

我们可以用来显示 pandas DataFrame 频率的另一个函数是 crosstab() 下面代码所示的函数。我们将创建一个数据框,然后为数据框的两列创建频率表。

1
2
3
4
5
6
7
8
9
df = pd.DataFrame({'Student_Grade': ['A','B','A','B','B', 'B', 'B', 'C', 'C', 'D'],
                   'Student_Age': [18, 25, 28, 19, 30, 20, 15, 18, 29, 17],
                   'Student_Gender': ['M','F', 'M', 'F', 'F', 'M', 'M', 'F', 'F', 'F']})
 
print("The Dataset is : ")
print(df)
 
print("\nFrequency Table for the Grade in the dataset : ")
pd.crosstab(index=df['Student_Grade'], columns='count')
交叉表输出屏幕截图
1
2
print("\nFrequency Table for the Gender in the dataset : ")
pd.crosstab(index=df['Student_Gender'], columns='count')
交叉表输出屏幕截图 2

高级频率表(2 路表)

我们还可以创建一个双向频率表来显示上一节中使用的数据集中两个不同列的频率。以下代码显示年龄和年级两列的双向频率表。

pd.crosstab(index=df['Student_Grade'], columns=df['Student_Age'])
两路频率表输出 1

我们还将在性别和年级两列之间开发一个双向频率表。看下面的代码。

pd.crosstab(index=df['Student_Grade'], columns=df['Student_Gender'])
两路频率表输出 2

感谢您的阅读!我希望你能理解本教程😃

我建议您也阅读以下教程:

  1. 在 Python 中计算精度——分类误差度量
  2. Python 中的卡方检验——你需要知道的一切!
  3. 通用 NumPy 三角函数