描述性统计的实现

获取数据:

# -*- coding: utf-8

import pandas as pd
from scipy import  stats
import numpy as np
import matplotlib.pyplot as plt
import xlrd

path = xlrd.open_workbook("C:\\Users\\Administrator\\Downloads\\data.xlsx")
table = path.sheets()[0]
nrows = table.nrows
print (nrows)

data_=[]
for i in range(nrows):
    data_.append(table.row_values(i)[0])

    data2 = pd.DataFrame(data_)
print (data2)

集中趋势的度量:

print ("众数: %d" %data2.mode().iloc[0] )
print("中位数: %d" %data2.median())
print ("下四分位数: %d" %data2.quantile(.25))
print ("上四分位数: %d" %data2.quantile(.75))
print ("算数平均数:%.2f" %data2.mean())
#非分组数据未用加权平均数
print ("几何平均数:%.2f" %stats.gmean(data2))

离散程度的度量:

print ("异众系数 " +str(1-stats.mode(stats)[1][0]/len(data2)))
print ("四分位差:%d" %(data2.quantile(.75)-data2.quantile(.25)))
print ("极差:%d" %(data2.max()-data2.min()))

#平均绝对离差
M = 0
for i in data2:
    M += abs(i - data2.mean())

print(M/len(data2))

print ("方差:%d" %np.var(data2))
print ("标准差:%d" %np.std(data2) )
# 四分位差
np.percentile(data2,75) - np.percentile(data2,25)  

# 离散系数
data2.std()/data2.mean()

偏度和峰度的度量:

# 偏度
from scipy import stats
stats.skew(data2)

# 峰度
stats.kurtosis(data2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值