Python数据分析入门日记Day12
——数据分析库Pandas:基本统计分析
今天学习了利用Pandas库进行基本统计分析,回想之前在学习Numpy的时候也接触过这个内容,在系统地学习过后,我发现在理论上有所重叠,但代码的编写完全不同,Pandas能够提供更多描述性分析的指标函数。
1、首先,随机生成三组数据,以便之后的函数使用。生成随机种子:
(1)生成第一组数据,是一个由100个呈正态分布的随机数组成的序列a1。输入以下代码:
效果如下(截取部分):
(2)生成第二组数据,由处在2~4之间的呈F分布的100个随机数构成。代码如下:
显示部分输出结果:
(3)生成第三组数据,由在1~100之间的100个随机整数构成,代码和输出结果如下:
2、一些函数
(1).count()
.count()函数用来查看某一序列或数据集中的非空元素个数,比如:想要计算序列a1中的非空元素个数,用法如下:
(2).min()和.max()
.min()和.max()这两个函数用来查看序列中的最小值和最大值。都以序列a1为例:
(3).idxmin()和.idxmax()
利用.idxmin()和.idxmax()找出在某一序列中最小值或最大值所处的位置,返回的是其位置所在的索引值。
(4).sum()
.sum()用来求序列中所有元素的和。序列a1中所有元素的加总为307.0225。
(5).mean()和.median()
.mean()函数用来求某一序列中的均值,.median()函数用来求取中位数。
(6).var()和.std()
.var()和.std()这两个函数分别用来求取方差和标准差。
(7).mad()
.mad()函数用来计算平均绝对误差。
(8).skew()和.kurt()
.skew()函数用来求某组数据的偏度,.kurt()函数可求取某组数据的峰度。通过输出结果发现序列a1呈左偏分布,峰度为1.22<3,说明该组序列绘制出的曲线会低于正态分布。
(9).describe()
.describe()函数是一个比较简洁的、能够一次性输出某组数据中多个描述统计变量结果的函数,用法如下:
发现.describe()函数同时返回了序列arr1的非空元素个数、均值、标准差、最值、分位数等基本统计分析数据。
(10)自己定义一个函数吧
另外,可以自己定义一个函数,一次性返回所有你想要得到的基本统计分析数据,当然前提是:数据集中的数据类型是连续性数据时才能够得到可靠结果。我自己定义了一个stats()函数:
利用该函数,对序列arr1进行基本的统计分析,输出结果:
3、对DataFrame中的数据进行统计分析
(1)首先,创建一个新的数据框df,这里df由之前创建的a1、a2、a3构成,并为其加上索引值x1、x2、x3。查看该DataFrame的前五行。
(2).apply()
.apply()函数的用途跟R语言中的apply()函数功能类似,意在应用某个函数。当在“( )”中输入刚刚自定义的函数“stats”时,可以实现对数据框df中每一列数据的统计分析结果输出,具体操作如下:
4、关于分类数据的统计分析
前面介绍的函数都适用于对连续性数据的统计分析,那么当碰到分类数据时该如何利用基本的统计分析进行信息提取呢?先导入带有分类数据(如:性别分为“男”、“女”)的数据集“职工信息.xlsx”。
依旧利用.describe()函数,对职工信息中的性别“Sex”进行统计分析,发现Pandas库中能够智能识别数据类型并返回不一样的基本信息:
上述输出结果中,返回值count表示样本个数,unique表示类别数,top表示数量较多的是哪一类,freq表示数量较多的类别数。最终结论为:从14名职工的性别角度分析,女性职工占大多数,有9名。
5、关于连续型变量的另外一些统计分析
在Pandas库中除了计算均值、方差这些基本统计量,还能够获取数值型变量的相关系数矩阵、协方差矩阵等更多的信息。
(1).corr()
.corr()函数用来求相关系数矩阵,默认为皮尔逊相关系数,若在“()”中添加“spearman”,可以求得spearman相关系数矩阵,以之前的数据框df为例:
(2).corrwith()
函数.corrwith()可以提取某一变量,查看其与其他变量之间的相关性,如需查看x1与x2、x3之间的相关性,操作如下:
(3).cov()
.cov()函数用来计算协方差矩阵:
今天关于基本统计分析的小记就到这里,熟练掌握这些函数的用法有利于日后进行数据分析工作,拿到一个新的数据集,根据实际情况,提取相应的数据信息,相信在不断的实践中,我们对数据的敏感度和处理能力会一定会逐步提高。
另外,接下去几天我又要外出游玩啦!公众号将交由我们的王梦静同学管理,为大家带来一些同学关于统计专业或数据科学方面的心得与思考,希望大家继续关注,感谢您的理解与支持!
Ovaltine
领取专属 10元无门槛券
私享最新 技术干货