1.导包
import numpy as np
import pandas as pd
2.聚合函数
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
df
|
0 |
1 |
2 |
0 |
35 |
50 |
28 |
1 |
55 |
23 |
76 |
2 |
31 |
41 |
93 |
3 |
58 |
95 |
43 |
4 |
67 |
99 |
17 |
df.count()
0 5
1 5
2 5
dtype: int64
df.count(axis=1)
0 3
1 3
2 3
3 3
4 3
dtype: int64
df.max()
0 67
1 99
2 93
dtype: int32
df.max(axis=1)
0 50
1 76
2 93
3 95
4 99
dtype: int32
df.min()
0 31
1 23
2 17
dtype: int32
df.min(axis=1)
0 28
1 23
2 31
3 43
4 17
dtype: int32
df.median()
0 55.0
1 50.0
2 43.0
dtype: float64
df.sum()
0 246
1 308
2 257
dtype: int64
df.sum(axis=1)
0 113
1 154
2 165
3 196
4 183
dtype: int64
df.values.sum()
811
df.mean()
0 49.2
1 61.6
2 51.4
dtype: float64
df.mean(axis=1)
0 37.666667
1 51.333333
2 55.000000
3 65.333333
4 61.000000
dtype: float64
3.方差
- 当数据分布比较分散(即数据在平均数附近波动较大)时,各个数据与平均数的差的平方和较大,方差就较大
- 当数据分布比较集中时,各个数据与平均数的差的平方和较小
- 因此方差较大,数据的波动较大;方差越小数据的波动就越小
- 标准差
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
df
|
0 |
1 |
2 |
0 |
72 |
41 |
9 |
1 |
36 |
75 |
45 |
2 |
99 |
89 |
33 |
3 |
30 |
23 |
77 |
4 |
19 |
52 |
16 |
df.var()
0 1108.7
1 695.0
2 725.0
dtype: float64
df.std()
0 33.297147
1 26.362853
2 26.925824
dtype: float64
4.其他数学函数
df[1].value_counts()
1
41 1
75 1
89 1
23 1
52 1
Name: count, dtype: int64
df.cumsum()
|
0 |
1 |
2 |
0 |
72 |
41 |
9 |
1 |
108 |
116 |
54 |
2 |
207 |
205 |
87 |
3 |
237 |
228 |
164 |
4 |
256 |
280 |
180 |
df.cumprod()
|
0 |
1 |
2 |
0 |
72 |
41 |
9 |
1 |
2592 |
3075 |
405 |
2 |
256608 |
273675 |
13365 |
3 |
7698240 |
6294525 |
1029105 |
4 |
146266560 |
327315300 |
16465680 |
5.协方差
- 两组数值中每对变量的偏差乘积的平均值
- 协方差>0:表示两组变量正相关
- 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值是另外一个也大于自身的值,那么两个变量之间的协方差就是正值
- 协方差<0:表示两组变量负相关
- 如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值是另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值
- 协方差=0:表示两组变量不相关
df.cov()
|
0 |
1 |
2 |
0 |
1108.70 |
451.25 |
-266.75 |
1 |
451.25 |
695.00 |
-199.00 |
2 |
-266.75 |
-199.00 |
725.00 |
df[0].cov(df[1])
451.25
- 相关系数 r
- 相关系数 = X与Y的协方差 / (X的标准差 * Y的标准差)
- 相关系数值的范围在 -1 和 +1 之间
- r > 0 为正相关,r < 0 为负相关,r = 0 表示不相关
- r 的绝对值越大,相关程度越高
df.corr()
|
0 |
1 |
2 |
0 |
1.000000 |
0.514065 |
-0.297528 |
1 |
0.514065 |
1.000000 |
-0.280344 |
2 |
-0.297528 |
-0.280344 |
1.000000 |
df.corrwith(df[2])
0 -0.297528
1 -0.280344
2 1.000000
dtype: float64