开发者学堂课程【高校精品课-华东师范大学-人工智能基础:Pandas-统计】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/920/detail/15576
Pandas-统计
Pandas 的统计运算功能
Pandas 的 series 对象和 dataFrame 对象都继承 numpy 的统计函数,拥有常用的数学和统计方法,可以对一列或多列数据进行统计分析。
Pandas 的汇总和描述性统计计算包括
函数名 |
功能说明 |
count |
统计数据值的数量,不包括NA值。 |
describe |
对Series、DataFrame的列计算汇总统计。 |
Min,max |
计算最小值、最大值 |
Argmin,argmax |
计算最小值、最大值的索引位置 |
Idxmin,idxmax |
计算最小值、最大值的索引值 |
sum |
计算总和 |
mean |
计算平均值 |
median |
返回中位数 |
ver |
计算样本值的方差 |
std |
计算样本值的标准差 |
cumsum |
计算样本值的累计和 |
diff |
计算一阶差分 |
建立一个 Series 对象
I
n [ ] : import pandas as pd
s = pd.Series
([
1,5,3,6]
)
s.sum()
o
ut[2]: 15
对于地理位置 s3,求平均值。
I
n[3]: s3=pd.Series({Longitude’:39,’Latitude’:116,’Temperature’:23})
s3.mean()
o
ut[3]: 59.333333333336
dataFrame 的数据描述统计,先读入数据文件,因为第三列是文本所以只取前两列数据。
I
n[ 4]: import pandas as pd
data = pd.read_cav(‘datall.txt’,sep =’ ‘) #
指明分隔符,查看d
ata
data
out[
4] Ht Wt Rt
0 1.5 40 thin
1 1.5 50 fat
2 1.5 60 fat
3 1.6 40 thin
4 1.6 50 thin
5 1.6 60 fat
6 1.6 70 fat
7 1.7 50 thin
8 1.7 60 thin
9 1.7 70 fat
10 1.7 80 fat
11 1.8 60 thin
12 1.8 70 thin
13 1.8 80 fat
14 1.8 90 fat
15 1.9 80 thin
16 1.9 90
fat
In [5]: df1.sum()//
求和/
/
o
ut[5]: Ht 28.7
Wt 1100.0
dtype: float64
In [6]: df1.sum(axis=0)//
求行方向的和
o
ut[6]: Ht 28.7
Wt 1100.0
dtype: float64
列方向的和如下:
I
n [7]: df1.sum(axis=1)
o
ut[7]: 0 41.5
1 51.5
2 61.5
3
41.6
4
51,6
5
61.6
6
71.6
7
51.7
8
61.7
9
71.7
1
0 81.7
11 61.8
1
2 71.8
1
3 81.8
1
4 91.8
1
5 81.9
1
6 91.9
d
type: float64
再求平均值
I
n[ 8]:df1.mean(axis=0)
o
ut[8]: Ht 1.688235
Wt 64.705882
dtype: float64
综合来看 numpy 和 pandas 都能完成数据分析数据计算任务,内部功能有相重合的部分比如方差,不过对于同样的数据,求得的方差结果是不同的。
I
n [9]: import numpy as np
a=np.arange(0.60.5)
a=a.reshnpe(3.4)
print(a)
result=np.std(a,axis=0)
print(result)
result=np.std(a,axis=1)
print(result)
[[ 0 5 10 15]
[20 25 30 35]
[40 45 50 55]
[16.32993162 16.32993162 16.32993162 16.32993162
5.59016994 5.59016994 5.59016994]//
方差结果用n
umpy
/
/
若用 pandas,计算结果会不同
I
n [10]: import numpy as np
import pandas as pd
a=np.arange(0.60.5)
a=a.reshnpe(3.4)
d
f = pd.DataFrame(a)
p
rint(df)
p
rint(‘-----------‘)
p
rint(df.std())
0 1 2 3
0
0 5 10 15
1
20 25 30 35
2
40 45 50 55
0
20.0
1
20.0
2
20.0
3
20.0
d
type:float64
由上述结果可看出与行的结果是有差别的
原因是 numpy 的 std()函数和 pandas 的 std()函数的默认参数 ddof 是不同的。ddof 参数表示标准偏差类型,numpy 中 ddof 默认是0,计算的是总体标准偏差;在 pandas 中 ddof 的值默认是1,计算的是样本标准偏差*
注*:标准差也被称为标准偏差(Standard Deviation),统计学名词,描述各数据偏离平均数的距离(离均差)的平均数。标准差能反映一个数据集的离散程度,标准偏差越小,这些值偏离平均值就越少。
我们在设计算法前通常要对数据进行查看,观察其中的分布奥秘,最好的方法就是可视化。