python之数据分析pandas(5)

python之数据分析pandas(5)

前言

数据分析主要还是通过一些数学方法统计结合可视化来进行的,今天我们学习一下pandas的数据统计函数,来进行进一步的数据分析。主要有汇总类统计、唯一去重和按值计数、相关系数和协方差。

开始

我们还是用的上次的天气的数据,读取数据之后,把温度的“℃”单位去掉,把温度的类型转换为‘int32’类型,和以前的步骤一样。然后开始我们的统计学习。

汇总类统计

汇总统计的函数有describe()函数,将数据分析之后,输出它们的有效数据行(count)、平均数(mean)、方差(std)、最小值(min)、第一四分位数(25%)、第二四分位数(50%)、第三数分位数(75%)和最大数(max)。

df.describe()	# 提取所有数字列统计结果

在这里插入图片描述
我们将df数据对象通过describe()函数统计后就回更加直观的能够反映数据的一些特征。分位数和数学统计的概念一样,四分位数(Quartile)是统计学中分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数(来自百度百科)。25%就是所有数据的第25%个位置的那个数字,其他也一样。
我们还可以查看单个的数据特征,直接进行引用就可以了。

df["bWendu"].mean()	# 查看单个Series的平均数据(bWendu)
#	18.665753424657535
df["bWendu"].max()	# 最高温
#	38
df["bWendu"].min()	# 最低温
#	-5

唯一去重和按值计数

在我们的生活中数据重复是最正常不过的事情了,有时候我们需要查看统计结果,就需要对数据进行去重。因此pandas提供了unique()函数去重。

唯一性去重

一般不用于数值列,而是枚举、分类列。

df["fengxiang"]	#不进行去重的输出结果。
0      东北风
1      东北风
2       北风
3      东北风
4      西北风
      ... 
360    西北风
361    西北风
362    西北风
363    东北风
364    东北风

df["fengxiang"].unique()	#进行去重的输出结果。
array(['东北风', '北风', '西北风', '西南风', '南风', '东南风', '东风', '西风'], dtype=object)

当直接输出时是一个series类型结果,但是当我们进行去重之后就变成了一个array数组类型展示。

按值计数

按值计数主要是统计该变量出现的次数,通过value_counts()方法进行统计。

df["fengxiang"].value_counts() # 统计"fengxiang"这个列标签中各种风向出现的次数。
南风     92
西南风    64
北风     54
西北风    51
东南风    46
东北风    38
东风     14
西风      6

由输出的结果可以看出南风出现的次数是最多的,就说明刮南风的天数是最多的,然后依次按降序进行了排序。

df["fengli"].value_counts()
1-2级    236
3-4级     68
1级       21
4-5级     20
2级       13
3级        7

其他的也可以进行统计分析。

相关系数和协方差

这个是不是很熟悉,今年概率论我们就学习了协方差,相关系数应该是高中就进行了学习,然后我们还可以在编程中进行运用。

协方差:用于衡量两个变量的总体误差。衡量同向反向程度,如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。
相关系数:衡量相似度程度,当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,当相关系数为-1时,说明两个变量变化的反向相似度最大
(来自知乎)

概率论中协方差是cov,而在pandas中也是通过cov()函数进行计算。

df.cov()	# 协方差矩阵
			bWendu		yWendu		aqi			aqiLevel
bWendu		140.613247	135.529633	47.462622	0.879204
yWendu		135.529633	138.181274	16.186685	0.264165
aqi			47.462622	16.186685	2697.364564	50.749842
aqiLevel	0.879204	0.264165	50.749842	1.060485

我们发现自己跟自己的协方差是最大的,但是我们一般不这样分析,哈哈哈。

相关系数在pandas中使用corr()函数进行计算。

df.corr()	# 相关系数矩阵

			bWendu		yWendu		aqi			aqiLevel
bWendu		1.000000	0.972292	0.077067	0.071999
yWendu		0.972292	1.000000	0.026513	0.021822
aqi			0.077067	0.026513	1.000000	0.948883
aqiLevel	0.071999	0.021822	0.948883	1.000000

通过相关系数,我们能够很容易的看出两个变量之间的相关性,自己和自己的相关性最高为1,从结果中也能够看出bWendu和yWendu的相关性是最高的,有着很大的关系。当然,也可以查看单个的相关系数,我们就来看看空气质量aqi与最高温度bWndu的相关性。

df["aqi"].corr(df["bWendu"])	# 单独查看空气质量和最高温度的相关系数
# 0.07706705916811077
df["aqi"].corr(df["yWendu"])
#	0.02651328267296879
df["aqi"].corr(df["bWendu"]-df["yWendu"])	# 空气质量和温差的相关系数
#	0.21652257576382047

如果只想查看单个的,我们就可以用这种方法。然后,我们将0.21/0.02,输出结果10.5,这个方法就是特征工程对于机器学习重要性的一个例子。感兴趣的可以了解一下。

结尾

今天是第五天了,感谢大家的阅读,希望多多指教,共同学习。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值