提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Pandas是一维到三维的数据处理工具,范围从一维的Series(序列)、二维的DataFrame(数据框)和 三维或者更高维的Panel(面板)。而Pandas中也可以进行统计特征计算。
mean():计算样本数据的算术平均值
std():计算样本数据的标准差
cov():计算样本数据的协方差矩阵
var():计算样本数据的方差
describe():用于描述样本数据的基本情况,包括非NaN数据的个数,均值,标准差,最小值,最大值以及样本的25%,50%和75%分位数。
序列Series
下面是一个简单的例子:
import pandas as pd
import numpy as np
s1 = pd.Series(np.array([10,20,30]))
s2 = pd.Series({"美国":10.0,"德国":20.0,"英国":30.0})
s3 = pd.Series(np.array([10.0,20.0,30.0]),index=['a','b','c'])
print(s1);print("---------")
print(s2);print("---------")
print(s3)
输出结果是:
0 10
1 20
2 30
dtype: int64
---------
美国 10.0
德国 20.0
英国 30.0
dtype: float64
---------
a 10
b 20
c 30
dtype: int64
可以看到,在s1中,没有给出行标签的命名,系统会自动从0开始递增给每行的标签进行命名,当然你也可以自己给行标签命名,如s3中自己给出index来命名行标签。在字典构造的序列中,字典的键就是第一列行标签,键所对应的值便是实际值。
对序列进行索引
a = s2['英国']
print(a) #输出: 30.0
b = np.mean(s1) #使用numpy库,求s1的平均值
print(b) #输出20.0
c = s1.mean() #使用pandas库,求s1的平均值
print(c) #输出20.0
Pandas Series 对象的 mean() 方法默认会忽略缺失值(NaN),而 NumPy 的 mean() 函数默认情况下不会忽略缺失值。因此,如果数据中包含缺失值,两种方法得到的结果可能会不同。
数据框
import pandas as pd
import numpy as np
a = np.arange(1,7).reshape(3,2)
print(a);print("------")
d1 = pd.DataFrame(a)
print(d1);print("------")
d2 = pd.DataFrame(a,index=['a','b','c'],columns=['x1','x2'])
print(d2);print("------")
d3 = pd.DataFrame({'x1':a[:,0],'x2':a[:,1]},index=['a','b','c'])
print(d3)
输出结果是:
[[1 2]
[3 4]
[5 6]]
------
0 1
0 1 2
1 3 4
2 5 6
------
x1 x2
a 1 2
b 3 4
c 5 6
------
x1 x2
a 1 2
b 3 4
c 5 6
在数据框中,可以用index来自定义行索引,用columns来自定义列索引。
需要注意的是:二维数据为字典的时候,键是列名,他的值是一维数组。