暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

person系数计算python源码

华罗庚的庚 2022-08-21
260
     """
    pearson系数计算
    请先安装xlrd模块读取excel
        数据放置在sheet的前两列,第一行是标题,不要放数据   
     """
    import xlrd

    def re_excel_col(filename, sheet_index):
    '''读取表格中的某些列'''
    print("开始读取文件")
    # 需要读取表格的文件名 :filename
    # 默认sheet_index = 0 :sheet_index
    data = xlrd.open_workbook(filename)
    # 读取制定表格的sheet,一般第一个是0
    sheet = data.sheet_by_index(sheet_index)

    # 获取x和y的值,首行需要放置标签,x第一列,y第二列
    col_read_x_value = sheet.col_values(0, start_rowx = 1, end_rowx = None)
    col_read_y_value = sheet.col_values(1, start_rowx = 1, end_rowx = None)
    print("已经读取完毕"+ filename , end = '\n')
    pearson(col_read_x_value, col_read_y_value)

    def pearson(x_value, y_value):
    """计算Pearson系数"""
    print("\n开始处理数据")
    # 计算X的平均值
    average_x = 0
    for i in x_value:
    average_x += i
    average_x = average_x len(x_value)

    # 计算Y的平均值
    average_y = 0
    for j in y_value:
    average_y += j
    average_y = average_y / len(y_value)

    # 计算三个系数
    L_XY = 0
    L_XX = 0
    L_YY = 0

    for m,n in zip(x_value, y_value):
    L_XY += (average_x - m) * (average_y - n)
    L_XX += abs(average_x - m)**(2)
    L_YY += abs(average_y - n)**(2)

    r = L_XY / (L_XX * L_YY)**(1/2)
    r = format(r, '.8f')
    print("pearson系数为:", r)

     # 主程序(第一个元素选择excel表格的位置,第二个元素是第几个sheet,0是默认第一个sheet)  
    re_excel_col(r'd:\Desktop\小程序\1.xlsx', 0)


    文章转载自华罗庚的庚,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论