python的pandas库数据特征分析

一、Pandas库的数据排序

对索引的操作就是对数据的操作

1、.sort_index()方法在指定轴(默认纵向)上根据索引进行排序,默认升序

.sort_index(axis=0, ascending=True) #0是纵向,1是横向,True升序,False是降序。

In [1]:import pandas as pd
		import numpy as np
		b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
		b
Out[43]:
			0	1	2	3	4
		c	0	1	2	3	4
		a	5	6	7	8	9
		d	10	11	12	13	14
		b	15	16	17	18	19
In [44]:b.sort_index()	#设置行索引值为升序(默认),即abcd
Out[44]:
			0	1	2	3	4
		a	5	6	7	8	9
		b	15	16	17	18	19
		c	0	1	2	3	4
		d	10	11	12	13	14
In [45]:b.sort_index(ascending=False)	#设置行索引值为降序,即dcba
Out[45]:
			0	1	2	3	4
		d	10	11	12	13	14
		c	0	1	2	3	4
		b	15	16	17	18	19
		a	5	6	7	8	9
:


In [46]:b.sort_index(axis=1,ascending=False)	##设置列索引值为降序,即43210
Out[46]:
			4	3	2	1	0
		c	4	3	2	1	0
		a	9	8	7	6	5	
		d	14	13	12	11	10
		b	19	18	17	16	15
2、.sort_values()方法在指定轴上根据数值进行排序,默认升序

Series.sort_values(axis=0, ascending=True)
DataFrame.sort_values(by, axis=0, ascending=True)
by : axis轴上的某个索引或索引列表

In [1]:import pandas as pd
		import numpy as np
		b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
		b
Out[43]:
			0	1	2	3	4
		c	0	1	2	3	4
		a	5	6	7	8	9
		d	10	11	12	13	14
		b	15	16	17	18	19
In [48]:c = b.sort_values(2,ascending=False)#把‘2’索引的列降序排列,即17,12,7,2
		c
Out[48]:
			0	1	2	3	4
		b	15	16	17	18	19
		d	10	11	12	13	14
		a	5	6	7	8	9
		c	0	1	2	3	4	
In [49]:c = c.sort_values('a',axis=1,ascending=False)##把‘a’索引的行降序排列,即9,8,7,6,5
		c
Out[49]:
			4	3	2	1	0
		b	19	18	17	16	15
		d	14	13	12	11	10
		a	9	8	7	6	5
		c	4	3	2	1	0

二、基本的统计分析函数

适用于Series和DataFrame类型

方法说明
.sum()计算数据的总和,按0轴计算,下同
.count()非NaN值的数量
.mean() .median()计算数据的算术平均值、算术中位数
.var() .std()计算数据的方差、标准差
.min() .max()计算数据的最小值、最大值
.describe()针对0轴(各列)的统计汇总

适用于Series类型

方法说明
.argmin() .argmax()计算数据最大值、最小值所在位置的索引位置(自动索引)
.idxmin() .idxmax()计算数据最大值、最小值所在位置的索引(自定义索引)
In [50]:import pandas as pd
		a = pd.Series([9,8,7,6],index=['a','b','c','d'])
		a
Out[50]:
		a    9
		b    8
		c    7
		d    6
		dtype: int64
In [51]:a.describe()
Out[51]:
		count    4.000000
		mean     7.500000
		std      1.290994
		min      6.000000
		25%      6.750000
		50%      7.500000
		75%      8.250000
		max      9.000000
		dtype: float64
In [52]:type(a.describe())
Out[52]:pandas.core.series.Series
In [53]:a.describe()['count']#获取a的数量
Out[53]:4.0
In [54]:a.describe()['max']#获取a的最大值
Out[54]:9.0

三、累计统计分析函数

1、适用于Series和DataFrame类型,累计计算
方法说明
.cumsum()依次给出前1、2、…、n个数的和
.cumprod()依次给出前1、2、…、n个数的积
.cummax()依次给出前1、2、…、n个数的最大值
.cummin()依次给出前1、2、…、n个数的最小值
In [55]:import pandas as pd
		import numpy as np
		b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
		b
out[55]:
			0	1	2	3	4
		c	0	1	2	3	4
		a	5	6	7	8	9
		d	10	11	12	13	14
		b	15	16	17	18	19
In [56]:b.cumsum()	#依次给出前1、2、…、n个数的和,比如第1列的第3行18=(1+6+11),比如第2列的第4行38=(2+7+12+17),即第n行的数等于(n-1)行的和
Out[56]:
			0	1	2	3	4
		c	0	1	2	3	4
		a	5	7	9	11	13
		d	15	18	21	24	27
		b	30	34	38	42	46
In [57]:b.cumprod()		#第n行的数等于(n-1)行的积
Out[57]:
			0	1	2	3	4
		c	0	1	2	3	4	
		a	0	6	14	24	36
		d	0   66	168	312	504
		b	0 1056 2856	5616 9576
In [58]:b.cummin()	#第n行的数等于(n-1)行的最小数
Out[58]:
			0	1	2	3	4
		c	0	1	2	3	4	
		a	0	1	2	3	4
		d	0	1	2	3	4	
		b	0	1	2	3	4
In [59]:b.cummax()	#第n行的数等于(n-1)行的最大数
Out[59]:
			0	1	2	3	4
		c	0	1	2	3	4
		a	5	6	7	8	9
		d	10	11	12	13	14
		b	15	16	17	18	19
2、适用于Series和DataFrame类型,滚动计算(窗口计算)
方法说明
.rolling(w).sum()依次计算相邻w个元素的和
.rolling(w).mean()依次计算相邻w个元素的算术平均值
.rolling(w).var()依次计算相邻w个元素的方差
.rolling(w).std()依次计算相邻w个元素的标准差
.rolling(w).min() .max()依次计算相邻w个元素的最小值和最大值
In [55]:import pandas as pd
		import numpy as np
		b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
		b
out[55]:
			0	1	2	3	4
		c	0	1	2	3	4
		a	5	6	7	8	9
		d	10	11	12	13	14
		b	15	16	17	18	19
In [62]:b.rolling(2).sum()	#依次计算列相邻2个元素的和,比如第0列的第3行15.0=(5+10),比如第2列的第4行29.0=(12+17)
Out[62]:
			0		1		2		3		4
		c	NaN		NaN		NaN		NaN		NaN
		a	5.0		7.0		9.0		11.0	13.0
		d	15.0	17.0	19.0	21.0	23.0
		b	25.0	27.0	29.0	31.0	33.0
In [63]:b.rolling(3).sum()#依次计算列相邻3个元素的和,比如第0列的第4行30.0=(5+10+15)
Out[63]:
			0		1		2		3		4
		c	NaN		NaN		NaN		NaN		NaN
		a	NaN		NaN		NaN		NaN		NaN
		d	15.0	18.0	21.0	24.0	27.0
		b	30.0	33.0	36.0	39.0	42.0

四、数据的相关分析

1、相关分析

两个事物,表示为X和Y,如何判断它们之间的存在相关性?
X增大,Y增大,两个变量正相关
X增大,Y减小,两个变量负相关
X增大,Y无视,两个变量不相关

2、协方差

在这里插入图片描述

两个事物,表示为X和Y,如何判断它们之间的存在相关性?
协方差>0, X和Y正相关
协方差<0, X和Y负相关
协方差=0, X和Y独立无关

3、Pearson相关系数

r 的取值范围[-1,1]
在这里插入图片描述

两个事物,表示为X和Y,如何判断它们之间的存在相关性?
0.8‐1.0 极强相关
0.6‐0.8 强相关
0.4‐0.6 中等程度相关
0.2‐0.4 弱相关
0.0‐0.2 极弱相关或无相关

4、相关分析函数

适用于Series和DataFrame类型

方法说明
.cov()计算协方差矩阵
.corr()计算相关系数矩阵, Pearson、Spearman、Kendall等系数

五、小结

排序.sort_index() .sort_values()
基本统计函数.describe()
累计统计函数.cum*() .rolling().*()
相关性分析.corr() .cov()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值