目录
集中趋势
均值(加权截尾去尾几何调和)
np.mean(jd_stock['opening_price'])
# 加权算术平均数
np.average(jd_stock['opening_price'],weights=jd_stock['volume'])
jddf['opening_price'].mean()
# 截尾均值【去掉最大N个和最小的N个值之后的均值】
from scipy import stats
stats.tmean(jd_stock['opening_price'],(25,30))
# 缩尾均值
stats.matats.winsorize(jd_stock['opening_price'],(0.05,0.05)).mean()
#几何平均&调和平均
stats.gmean(jd_stock['opening_price'])
stats.hmean(jd_stock['opening_price'])
中位数
np.median(jd_stock['opening_price'])
jddf['opening_price'].median()
stats.nanmedian(jd_stock['opening_price'])
分位数
#计算指定分位点的分位数
stats.scoreatpercentile(jd_stock['opening_price'],[10,20,25,50,75,100])
#计算指定数值所处的分位点
stats.percentileofscore(jd_stock['opening_price'],30.27)
#也可以用stats.mstats.mquantiles计算
众数
stats.mode(jd_stock['opening_price'])
>返回众数和众数出现的次数
pandas对象也可以用mode方法求众数
- 离散程度
极差
np.max(jd_stock['opening_price'])-np.min(jd_stock['opening_price'])
jddf['opening_price'].max()-jddf['opening_price'].min()
四分位差
stats.scoreatpercentile(jddf['opening_price'],75)-
stats.scoreatpercentile(jddf['opening_price'],25)
方差和标准差
np.var(jd_stock['opening_price'],ddof=1)
# ddof设置为1时,表示计算自由度为n-1的样本修正方差。ddof默认0
jd_stock['opening_price'].var(ddof=1)
np.std(jd_stock['opening_price'],ddof=1)
jd_stock['opening_price'].std(ddof=1)
stats.tvar(jddf['opening_price'])
stats.nanstd(jddf['opening_price'])
协方差
np.cov(jd_stock['opening_price'],jd_stock['closing_price'],bias=1,ddof=1)
# bias=1表示结果需要除以N否则只计算分子部分
# 返回结果为4*4矩阵,对角线为变量1,2的方差
变异系数(标准差系数、离散系数)
cv=标准差/均值
相对指标:对不同总体或样本数据的离散程度作比较
分布形状
偏度(数据分布对称性的测度)
左偏【左边尾巴】,偏度小于0
jddf['opening_price'].skew()
峰度(数据分布曲线顶端陡峭或扁平程度的指标)
黑线服从尖峰(leptokurtic)、厚尾(thick-tailed)分布的峰度值大于3
jddf['opening_price'].kurt()
数据透视表
pivot_table(data,values=,index=,columns=,aggfun='mean',
fill_value = ,margins=False,dropna=True,margins_name='All')
pivot_table(storesales,values=['orders'],index=['store'],columns=['method'],aggfun='mean',
fill_value =0)
data:指定pandas中的dataframe
index、columns、values:分别对应数据透视表中的行列值,都是df指定的列
aggfunc:指定汇总形式
margins:指定分类汇总总和总计
fill_value:指定填补的缺失值
dropna:指定是否所有数据项都是缺失值的列