Python pandas.DataFrame.corr函数方法的使用

Python的Pandas库中,DataFrame.corr() 方法用于计算DataFrame对象中所有数值型列之间的相关系数。相关系数衡量了两个变量之间的线性关系强度和方向,其值介于 -1 到 1 之间,分别表示负相关和正相关的程度。本文主要介绍一下Pandas中pandas.DataFrame.corr方法的使用。

DataFrame.corr(method ='pearson' , min_periods = 1 )

计算列的成对相关性,不包括NA/null值。

参数

method: {'pearson','kendall','spearman'}callable

  pearson:标准相关系数

  kendall:Kendall Tau相关系数

  spearman:Spearman等级相关

  callable:可输入两个1d ndarray来调用

并返回一个float。添加的版本 : 0.24.0

min_periods : int,可选

观察每对列所需的最小数,以获得有效结果。

目前仅适用于pearson和spearman correlation

返回

y : DataFrame

例子

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)

推荐阅读
cjavapy编程之路首页