pandas的数据累计统计分析

本文总结了Python数据分析库pandas的累计统计分析功能,包括如何对Series和DataFrame进行累计运算,以减少for循环,提升数据分析效率。同时介绍了pandas的滚动计算(窗口计算)函数,用于计算相邻元素的统计值。

本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。
数据的累计统计分析是能够对序列中的前n个数进行累计运算,对于一些大量的数据分析中,可以减少for循环的使用,也使得数据的运算变得更加灵活。pandas提供了一组数据累计统计分析函数,这些函数都适用于Series和DataFrame类型。

.cumsum()依次给出前1,2,……,n个数的和
.cumprod()依次给出前1,2,……,n个数的积
.cummin()依次给出前1,2,……,n个数的最小值
.cummax()依次给出前1,2,……,n个数的最大值
b = pd.DataFrame(np.arange(20).reshape(4,5), index=['c', 'a', 'd', 'b'])
b

	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
b.cumsum()
	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
b.cumprod()
	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

除了以上基本的累计统计函数外,pandas还提供了适用于Series和DataFrame类型的滚动计算函数,也叫窗口计算函数,也就是说这个函数是依次计算相邻的w个元素的值,而非累计从0开始计算。

.rolling(w).sum()计算相邻w个元素的和
.rolling(w).mean()计算相邻w个元素的算术平均值
.rolling(w).var ()计算相邻w个元素的方差
.rolling(w).std()计算相邻w个元素的和
.rolling(w).min() .max()计算相邻w个元素的最小值,最大值
b = pd.DataFrame(np.arange(20).reshape(4,5), index=['c', 'a', 'd', 'b'])
b

	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
b.rolling(2).sum()
	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
b.rolling(3).sum()
	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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值