基本统计函数
(1) sum
功能:计算数据样本的总和
使用格式: D.sum() 样本D 可为 Dataframe 或者 Series
(2)mean
功能:计算平均数
使用格式:D.mean() 样本D 可为Dataframe 或者 Series
(3)var
功能:计算数据样本的方差
使用格式:D.var() 样本D 可为Dataframe 或者 Series
(4)std
功能:计算数据样本的标准差
使用格式:D.std() 样本D 可为 Dataframe 或者 Series
(5)corr
功能:计算数据样本的 Spearman (Pearson)相关系数矩阵
使用格式:D.corr(method = 'pearson')
#-*- coding:utf-8 -*-
import pandas as pd
# 生成样本
D = pd.DataFrame([range(1,8),range(2,9)])
print D.corr(method = 'spearman')
s1 = D.loc[0] # 提取第一行
s2 = D.loc[1] # 提取第二行
print s1.corr(s2,method = 'pearson')
(6)cov
功能:计算数据样本的协方差 cov(X,Y) = E(XY) - E(X)E(Y) 相关系数就是 cov(X,Y)/(std(X)*std(Y))
使用格式: D.cov()
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
# 产生 6 * 5 随机矩阵
D = pd.DataFrame(np.random.randn(6,5))
# 协方差矩阵 是一个实对称矩阵
print D.cov()
# 计算第 0 列和第 1 列协方差
print D[0].cov(D[1])
(7) skew 和 kurt 分别表示偏度和梯度计算
偏度反应的是变量分布相对于期望值的不对称性,如果为正(正偏),表示在期望值右侧的尾部较长,也就是小于期望值的样本比较集中,负偏反之
峰度反应的是在峰值处的数据峰度高低的特性,为正则为尖峰态,为负则为低峰态。峰度说明如下
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
# 产生 6 * 5 随机矩阵
D = pd.DataFrame(np.random.randn(6,5))
# 偏度
print D.skew()
# 峰度
print D.kurt()
(8)describe
功能:直接给出样本数据的一些基本统计量
使用格式: D.describe()
pandas 累计统计特征函数
cumsum() 依次给出前 1、2、3 .. n 个数的和 (在帕累托图中用过)
cumprod() 依次给出前 1、2、3 .. n 个数的积
cummax() 依次给出前 1、2、3 .. n 个数的最大值
cummin() 依次给出前 1、2、3 .. n 个数的最小值
rolling_sum() 滚动计算操作,给出给定的窗口中几个数据的和(rolling_mean,rolling_var ... 懒得一一列举了,用法是 pd.rolling_sum(D,n))
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
# 产生 6 * 5 随机矩阵
D = pd.Series(range(10))
# 给出依次相加值
print D.cumsum()
# 给出相邻两个数据相加值
print pd.rolling_sum(D,2)
作图函数
(1)plot
功能:绘制线性二维图,折线图
使用格式:plt.plot(x,y,S) 绘制y为纵轴,x为横轴的二维图形,S 为样式
常用的选项:'b' 蓝色,'r' 红色,'g' 绿色,'o' 为圆圈,'-'为实线, '--'为虚线
还支持 DataFrame 和 Series 对象内置的方法作图, D.plot(kind = 'box') 默认以 index 为横坐标,每列数据为纵坐标自动作图。
支持 line (线) 、 bar(条形)、hist(直方图)、box(箱线图)、kde(密度图)、pie(饼图) 等。。。
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# x 坐标输入,x = [0,2pi],切成 50 段
x = np.linspace(0,2*np.pi,50)
y = np.sin(x)
# b 是蓝色 -- 是虚线 p 是方点
plt.plot(x,y,'bp--')
plt.show()
(2) pie
功能:绘制饼图
使用格式:plt.pie(size) size 是一个列表,记录各个扇形的比例
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
# 定义标签
labels = 'Frogs','Hogs','Dogs','Logs'
# 每一块的比例
sizes = [15,30,45,10]
# 定义每一块的颜色
colors = ['yellowgreen','gold','lightskyblue','lightcoral']
# 突出显示,突出显示第二块
explode = (0,0.1,0,0)
plt.pie(sizes,explode = explode,labels = labels,colors = colors,autopct = '%1.1f%%',
shadow = True,startangle = 90)
# 显示为圆,避免比例被压缩成椭圆
plt.axis('equal')
plt.show()
(3)hist
功能:绘制二维条形直方图,可显示数据分布的情况
使用格式:plt.hist(x,y) x 是待绘制的一维数组。y 可以是整数,指定分成多少组; 也可以是列表,手工指定各组的分界点。
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
# 1000 个服从正态分布的随机数
x = np.random.randn(1000)
# 分为 10 组
plt.hist(x,10)
plt.show()
(4)boxplot
功能:绘制样本数据的箱线图
使用格式: D.boxplot() / D.plot(kind = 'box')
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 1000 个服从正态分布的随机数
x = np.random.randn(1000)
# 构造两列的 DataFrame
D = pd.DataFrame([x,x+1]).T
D.plot(kind = 'box')
plt.show()
(5)plot(logx = True) / plot(logy = True)
功能:绘制 x 或 y 轴的对数图
使用格式: D.plot(logx = True) / D.plot(logy = True)
对 x 轴(y 轴)使用对数刻度,以 10 为底,D 为 DataFrame 或者 Series
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 指数序列
x = pd.Series(np.exp(np.arange(20)))
# 先绘制指数曲线
x.plot(label = u"指数数据",legend = True)
plt.show()
x.plot(logy = True,label = u"对数化",legend = True)
plt.show()