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)