本文的主要内容是基于中国大学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
本文总结了Python数据分析库pandas的累计统计分析功能,包括如何对Series和DataFrame进行累计运算,以减少for循环,提升数据分析效率。同时介绍了pandas的滚动计算(窗口计算)函数,用于计算相邻元素的统计值。

1万+

被折叠的 条评论
为什么被折叠?



