首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析入门日记Day12:数据分析库Pandas:基本统计分析

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190128G056EP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券