目錄
集中趨勢
均值(加權截尾去尾幾何調和)
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:指定是否所有數據項都是缺失值的列