部分代码
from math import sqrt
import numpy as np
import pandas as pd
def excel_one_line_to_list():
def multipl(a, b):
sumofab = 0.0
for i in range(len(a)):
temp = a[i] * b[i]
sumofab += temp
return sumofab
def corrcoef(x, y):
n = len(x)
# 求和
sum1 = sum(x)
sum2 = sum(y)
# 求乘积之和
sumofxy = multipl(x, y)
# 求平方和
sumofx2 = sum([pow(i, 2) for i in x])
sumofy2 = sum([pow(j, 2) for j in y])
num = sumofxy - (float(sum1) * float(sum2) / n)
# 计算皮尔逊相关系数
den = sqrt((sumofx2 - float(sum1 ** 2) / n) * (sumofy2 - float(sum2 ** 2) / n))
return num / den
df = pd.read_excel("G:\文件夹1\文件夹2\文件夹3\data.xls", usecols=[0], names=None) # 读取项目名称列,不要列名
df = np.array(df)
df2 = pd.read_excel("G:\文件夹1\文件夹2\文件夹3\data.xls", usecols=[1], names=None) # 读取项目名称列,不要列名
df2 = np.array(df2)
print(corrcoef(df, df2))
if __name__ == '__main__':
excel_one_line_to_list()
实验结果
完整代码链接:皮尔森相关性系数的计算python代码(一)
相关链接
1、皮尔森相关性系数的计算python代码(一)
2、皮尔森相关性系数的计算python代码(二)
3、皮尔森相关性系数的计算python代码(三)
4、皮尔森相关性系数的计算python代码(四)(热力图版)
5、斯皮尔曼相关系数计算的python代码