描述几个类别出现频率的表格称为频率表。这种特殊类型的表对于了解数据集中包含的值的分布特别有帮助。本教程将引导您完成在 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 路表)
我们还可以创建一个双向频率表来显示上一节中使用的数据集中两个不同列的频率。以下代码显示年龄和年级两列的双向频率表。
pd.crosstab(index = df[ 'Student_Grade' ], columns = df[ 'Student_Age' ]) |
我们还将在性别和年级两列之间开发一个双向频率表。看下面的代码。
pd.crosstab(index = df[ 'Student_Grade' ], columns = df[ 'Student_Gender' ]) |
感谢您的阅读!我希望你能理解本教程😃
我建议您也阅读以下教程: