基本统计分析
类似Numpy库,可见此博文 Numpy的统计函数
1.0 适用于Series和DataFrame数据类型
函数名 | 描述 |
---|---|
sum() | 求和 |
mean() | 求期望 |
count() | 求非NaN值的个数 |
std() | 求标准差 |
var() | 求方差 |
max() | 最大值 |
min() | 最小值 |
median() | 中位数 |
2.0 只适用于Series类型
方法名 | 描述 |
---|---|
.argmin() .argmax() | 计算数据的最小/大值所在位置的索引位置(自动索引) |
.idxmin() .idxmax() | 计算数据的最小/大值所在位置的索引位置(自定义索引) |
#在Series类型当中用户可以使用自定义索引,而系统也会保存好自动索引
.describe() 针对0轴(各列)的统计汇总
案例代码如下:#注意下标真正对应的列 i=i+1
>>> import pandas as pd
>>> a=pd.Series([9,8,5,1],index=['a','b','c','d'])
>>> a
a 9
b 8
c 5
d 1
dtype: int64
>>> a.describe()
count 4.000000
mean 5.750000
std 3.593976
min 1.000000
25% 4.000000
50% 6.500000
75% 8.250000
max 9.000000
dtype: float64
>>> type(a.describe())
<class 'pandas.core.series.Series'>
>>> a.describe()['count']
4.0
>>> a.describe()['max']
9.0
#以下为DataFrame数据类型
>>> import numpy as np
>>> b=pd.DataFrame(np.arange(20).reshape(4,5),index=['c','v','b','n'])
>>> b
0 1 2 3 4
c 0 1 2 3 4
v 5 6 7 8 9
b 10 11 12 13 14
n 15 16 17 18 19
>>> b.describe()
0 1 2 3 4
count 4.000000 4.000000 4.000000 4.000000 4.000000
mean 7.500000 8.500000 9.500000 10.500000 11.500000
std 6.454972 6.454972 6.454972 6.454972 6.454972
min 0.000000 1.000000 2.000000 3.000000 4.000000
25% 3.750000 4.750000 5.750000 6.750000 7.750000
50% 7.500000 8.500000 9.500000 10.500000 11.500000
75% 11.250000 12.250000 13.250000 14.250000 15.250000
max 15.000000 16.000000 17.000000 18.000000 19.000000
>>> b.describe().ix['max']
0 15.0
1 16.0
2 17.0
3 18.0
4 19.0
Name: max, dtype: float64
>>> b.describe()[2] #对地3列进行统计汇总,
count 4.000000
mean 9.500000
std 6.454972
min 2.000000
25% 5.750000
50% 9.500000
75% 13.250000
max 17.000000
Name: 2, dtype: float64
累计统计分析
1.0 适用于Series和DataFrame数据类型
方法名 | 描述 |
---|---|
.cumsum() | 依次给出前 1 2 3 。。。n个数的和 |
.cumprod() | 依次给出前 1 2 3 。。。n个数的积 |
.cummin() | 依次给出前 1 2 3 。。。n个数的最小值 |
.cummax() | 依次给出前 1 2 3 。。。n个数的最大值 |
案例代码如下
>>> b
0 1 2 3 4
c 0 1 2 3 4
v 5 6 7 8 9
b 10 11 12 13 14
n 15 16 17 18 19
>>> b.cummax()
0 1 2 3 4
c 0 1 2 3 4
v 5 6 7 8 9
b 10 11 12 13 14
n 15 16 17 18 19
>>> b.cummin()
0 1 2 3 4
c 0 1 2 3 4
v 0 1 2 3 4
b 0 1 2 3 4
n 0 1 2 3 4
>>> b.cumsum()
0 1 2 3 4
c 0 1 2 3 4
v 5 7 9 11 13
b 15 18 21 24 27
n 30 34 38 42 46
>>> b.cumprod()
0 1 2 3 4
c 0 1 2 3 4
v 0 6 14 24 36
b 0 66 168 312 504
n 0 1056 2856 5616 9576
滚动计算(窗口计算)
方法名 | 描述 |
---|---|
rolling(w).sum() | 依次计算相邻w个元素的和 |
rolling(w).mean() | 依次计算相邻w个元素的算术平均值 |
rolling(w).var() | 依次计算相邻w个元素的方差 |
rolling(w).std() | 依次计算相邻w个元素的标准差 |
rolling(w).min() | 依次计算相邻w个元素的最小值 |
rolling(w).max() | 依次计算相邻w个元素的最大值 |
案例代码如下:
>>> b.rolling(2).sum()
0 1 2 3 4
c NaN NaN NaN NaN NaN
v 5.0 7.0 9.0 11.0 13.0
b 15.0 17.0 19.0 21.0 23.0
n 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
v NaN NaN NaN NaN NaN
b 15.0 18.0 21.0 24.0 27.0
n 30.0 33.0 36.0 39.0 42.0