Python实现统计描述以及计算皮尔逊相关系数
2019-08-05 本文已影响0人
XHHP
关于Python数据分析在数学建模中的更多相关应用:Python数据分析在数学建模中的应用汇总(持续更新中!)
(一)、数据示例
在这里插入图片描述(二)、从excel文件中读取数据
#从excel文件中读取数据
def read(file):
wb = xlrd.open_workbook(filename=file)#打开文件
sheet = wb.sheet_by_index(0)#通过索引获取表格
rows = sheet.nrows # 获取行数
all_content = [] #存放读取的数据
for j in range(0, 6): #取第1~第6列对的数据
temp = []
for i in range(1,rows) :
cell = sheet.cell_value(i, j) #获取数据
temp.append(cell)
all_content.append(temp) #按列添加到结果集中
temp = []
return np.array(all_content)
(三)、统计描述
#统计描述
def calculate(datas):
MIN = np.min(datas,axis = 1) #计算最小值
MAX = np.max(datas,axis = 1) #计算最大值
AVG = np.average(datas,axis = 1) #计算平均值
MEDIAN = np.median(datas,axis = 1) #计算中位数
SKEWNESS =stats.skew(datas,axis = 1) #计算偏度
KURTOSIS = stats.kurtosis(datas,axis = 1) #计算峰度
STD = np.std(datas,axis = 1) #计算标准差
result = np.array([MIN,MAX,AVG,MEDIAN,SKEWNESS,KURTOSIS,STD]) #形成一个矩阵
return result
(四)、将统计描述输出到excel文件中
#将统计描述输出到excel文件中
def write(answer_data):
writer = pd.ExcelWriter('C:\\Users\\lenovo\\Desktop\\数学建模\\相关系数\\A.xlsx') # 写入Excel文件
answer_data.to_excel(writer, 'page_1', float_format='%.5f') # ‘page_1’是写入excel的sheet名
writer.save()
writer.close()
(五)、综合代码
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 29 16:53:19 2019
@author: lenovo
"""
import xlrd
import numpy as np
import pandas as pd
from scipy import stats
from scipy.stats import pearsonr
#从excel文件中读取数据
def read(file):
wb = xlrd.open_workbook(filename=file)#打开文件
sheet = wb.sheet_by_index(0)#通过索引获取表格
rows = sheet.nrows # 获取行数
all_content = [] #存放读取的数据
for j in range(0, 6): #取第1~第6列对的数据
temp = []
for i in range(1,rows) :
cell = sheet.cell_value(i, j) #获取数据
temp.append(cell)
all_content.append(temp) #按列添加到结果集中
temp = []
return np.array(all_content)
#统计描述
def calculate(datas):
MIN = np.min(datas,axis = 1) #计算最小值
MAX = np.max(datas,axis = 1) #计算最大值
AVG = np.average(datas,axis = 1) #计算平均值
MEDIAN = np.median(datas,axis = 1) #计算中位数
SKEWNESS =stats.skew(datas,axis = 1) #计算偏度
KURTOSIS = stats.kurtosis(datas,axis = 1) #计算峰度
STD = np.std(datas,axis = 1) #计算标准差
result = np.array([MIN,MAX,AVG,MEDIAN,SKEWNESS,KURTOSIS,STD]) #形成一个矩阵
return result
#将统计描述输出到excel文件中
def write(answer_data):
writer = pd.ExcelWriter('C:\\Users\\lenovo\\Desktop\\数学建模\\相关系数\\A.xlsx') # 写入Excel文件
answer_data.to_excel(writer, 'page_1', float_format='%.5f') # ‘page_1’是写入excel的sheet名
writer.save()
writer.close()
datas=read('C:\\Users\\lenovo\\Desktop\\数学建模\\相关系数\\第5讲.相关系数7.17\\代码和例题数据\\八年级女生体测数据.xlsx')
result = calculate(datas) #统计描述
corrcoe = np.corrcoef(result) #计算皮尔逊相关系数
answer_data = pd.DataFrame(result) #将ndarry转换为DataFrame
write(answer_data) #输出结果