如何在Python中创建频率表

如何在Python中创建频率表

在这篇文章中,我们将看到如何在Python中创建频率表

频率是对一个特定值在我们的数据中出现的次数的统计。频率表显示了一组数值以及它们出现的频率。它们使我们能够更好地了解哪些数据值是常见的,哪些是不常见的。这些表格是安排你的数据和与他人交流结果的一个伟大方法。在这篇文章中,让我们演示一下在python中创建频率表的不同方法。

方法1:使用value_counts(方法的简单频率表

让我们看一下我们要处理的数据集。

使用pandas.read_csv()方法导入必要的包并读取数据集。

# import packages
import pandas as pd
import numpy as np
  
# reading csv file as pandas dataframe
data = pd.read_csv('iris.csv')
data.head()

输出:

如何在Python中创建频率表?

现在让我们找出数据集中物种列的单向频率表。

df = data['species'].value_counts()
print(df)

输出:

setosa        50
virginica     50
versicolor    50
Name: species, dtype: int64

方法2:使用pandas.crosstab()方法制作单程频率表

这里我们将使用crosstab()方法来获得频率。

语法: pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name=’All’, dropna=True, normalize=False)

参数:

  • index:数组或系列,包含要在行中进行分组的值。
  • columns: 包含值的数组或系列,在列中进行分组,这是我们给找到的频率的列起的名字。
  • values :一个数字数组,将根据因素进行汇总。

在下面的代码中,我们使用了crosstab函数,我们把物种列作为索引,把’no_of_species’作为频率列的名称。

# import packages
import pandas as pd
import numpy as np
  
import matplotlib.pyplot as plt
%matplotlib inline
  
# reading csv file as pandas dataframe
data = pd.read_csv('iris.csv')
  
# one way frequency table for the species column.
freq_table = pd.crosstab(data['species'], 'no_of_species')
  
freq_table

输出:50株属于setosa品种,50株Versicolor和50株Virginica。

如何在Python中创建频率表?

如果我们希望频率表是按比例排列的,那么我们就得用每个单独的比例除以总数的总和。

# import packages
import pandas as pd
import numpy as np
  
import matplotlib.pyplot as plt
%matplotlib inline
  
# reading csv file as pandas dataframe
data = pd.read_csv('iris.csv')
  
# one way frequency table for the species column.
freq_table = pd.crosstab(data['species'], 'no_of_species')
  
# frequency table in proportion of species
freq_table= freq_table/len(data)
  
freq_table

输出: 0.333表示总人口的0.333%为套娃,以此类推。

如何在Python中创建频率表?

方法3:使用pandas.crosstab()方法制作双向频率表

双向频率表是指我们为数据集中的两个不同特征创建一个频率表。要下载和查看本例中使用的CSV文件,请点击这里。在下面的例子中,我们为数据集中的船舶模式和航段列创建一个双向频率表。

# import packages
import pandas as pd
import numpy as np
  
# reading csv file 
data = pd.read_csv('SampleSuperstore.csv')
  
# two way frequency table for the ship mode column
# and consumer column of the superstore dataset.
freq_table = pd.crosstab(data['Ship Mode'], data['Segment'])
  
freq_table

输出:

如何在Python中创建频率表?

我们可以把这个表格解释为:对于头等舱的船舶模式,有769个消费者段,485个公司段和284个家庭办公室段,等等。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程