美文网首页
Python实现统计描述以及计算皮尔逊相关系数

Python实现统计描述以及计算皮尔逊相关系数

作者: XHHP | 来源:发表于2019-08-05 23:18 被阅读0次

    关于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)  #输出结果
    
    

    (六)、结果展示

    在这里插入图片描述

    相关文章

      网友评论

          本文标题:Python实现统计描述以及计算皮尔逊相关系数

          本文链接:https://www.haomeiwen.com/subject/hvcbdctx.html