DataFrame.corr(method ='pearson' , min_periods = 1 )
计算列的成对相关性,不包括NA/null
值。
参数: | method: pearson:标准相关系数 kendall:Kendall Tau相关系数 spearman:Spearman等级相关 callable:可输入两个1d ndarray来调用 并返回一个 min_periods : 观察每对列所需的最小数,以获得有效结果。 目前仅适用于pearson和spearman correlation |
返回: | y : |
例子
1)使用 .corr() 方法来计算它们之间的相关系数
import pandas as pd import numpy as np # 创建一个示例DataFrame data = { 'A': np.random.randn(100), # 随机生成100个标准正态分布的数 'B': np.random.rand(100), # 随机生成100个在[0,1)区间均匀分布的数 'C': np.random.randint(0, 100, 100), # 随机生成100个[0,100)之间的整数 'D': np.random.randn(100) } df = pd.DataFrame(data) # 计算DataFrame中所有数值型列的相关系数 correlation_matrix = df.corr() print("Correlation Matrix:") print(correlation_matrix)
2)使用自定义的相关系数方法
import numpy as np import pandas as pd # 定义直方图交集相关系数方法 histogram_intersection = lambda a, b: np.minimum(a, b).sum().round(decimals=1) # 创建示例 DataFrame df = pd.DataFrame([ (.2, .3), (.0, .6), (.6, .0), (.2, .1) ], columns=['dogs', 'cats']) # 使用定义的直方图交集相关系数方法计算相关系数矩阵 correlation_matrix = df.corr(method=histogram_intersection) print("Correlation Matrix:") print(correlation_matrix)