Python - 测量集中趋势
从数学上讲,集中趋势意味着测量数据集中值的位置中心或分布。它给出了数据集中数据的平均值的概念,也表明了值在数据集中的分布范围。这反过来有助于评估新输入适合现有数据集的机会,从而评估成功的概率。
有三个主要的集中趋势测量方法,可以使用 pandas python 库中的方法计算。
平均值 - 它是数据的平均值,是值的总和除以值的数量。
中位数 - 当值按升序或降序排列时,它是分布中的中间值。
模式 - 它是分布中最常出现的值。
计算平均值和中位数
pandas 函数可直接用于计算这些值。
import pandas as pd #创建系列词典 d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack', 'Lee','Chanchal','Gasper','Naviya','Andres']), 'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]), 'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])} #Create a DataFrame df = pd.DataFrame(d) print "Mean Values in the Distribution" print df.mean() print "*******************************" print "Median Values in the Distribution" print df.median()
其输出如下 −
Mean Values in the Distribution Age 31.833333 Rating 3.743333 dtype: float64 ******************************* Median Values in the Distribution Age 29.50 Rating 3.79 dtype: float64
计算模式
模式在分布中可能存在也可能不存在,这取决于数据是否连续,或者是否存在具有最大频率的值。我们采用以下简单分布来找出模式。这里我们有一个在分布中具有最大频率的值。
import pandas as pd #创建系列词典 d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack', 'Lee','Chanchal','Gasper','Naviya','Andres']), 'Age':pd.Series([25,26,25,23,30,25,23,34,40,30,25,46])} #Create a DataFrame df = pd.DataFrame(d) print df.mode()
其输出如下 −
Age Name 0 25.0 Andres 1 NaN Chanchal 2 NaN Gasper 3 NaN Jack 4 NaN James 5 NaN Lee 6 NaN Naviya 7 NaN Ricky 8 NaN Smith 9 NaN Steve 10 NaN Tom 11 NaN Vin