如何在 pandas 中使用 corrwith() (带有示例)


您可以使用 pandas 中的corrwith()函数来计算两个不同 pandas DataFrame 中具有相同名称的数字列之间的成对相关性。

该函数使用以下基本语法:

 df1. corrwith (df2)

注意:此函数与corr()函数不同,corr() 函数计算同一 DataFrame 中两个数字列之间的相关性。

以下示例展示了如何在实践中使用corrwith()函数。

示例:如何在 Pandas 中使用 corrwith()

假设我们有以下两个 panda DataFrame:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' points ': [18, 22, 29, 25, 14, 11],
                    ' assists ': [4, 5, 5, 4, 8, 12],
                    ' rebounds ': [10, 6, 4, 6, 3, 5]})

print (df1)

  team points assists rebounds
0 to 18 4 10
1 B 22 5 6
2 C 29 5 4
3 D 25 4 6
4 E 14 8 3
5 F 11 12 5

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' points ': [22, 25, 27, 35, 25, 20],
                    ' assists ': [15, 13, 8, 8, 5, 8],
                    ' rebs ': [4, 11, 12, 8, 7, 10]})

print (df2)

  team points assists rebs
0 A 22 15 4
1 B 25 13 11
2 C 27 8 12
3 D 35 8 8
4 E 25 5 7
5 F 20 8 10

我们可以使用corrwith()函数来计算两个 DataFrame 中同名数字列之间的相关性:

 #calculate correlation between numeric columns with same names in each DataFrame
df1. corrwith (df2)

points 0.677051
assists -0.478184
NaN rebounds
rebs NaN
dtype:float64

从结果我们可以看出:

  • 两个DataFrame的列值之间的相关性为0.677
  • 两个 DataFrame 中的辅助列值之间的相关性为-0.478

由于这两个 DataFrame 中都不存在列名称ouncesrebs ,因此每个列都会返回NaN值。

注意#1 :默认情况下, corrwith()函数计算列之间的 Pearson 相关系数,但您也可以指定 method=’kendall’ 或 method=’spearman’ 来计算不同类型的系数而不是相关性。

注意#2 :您可以在此处找到corrwith()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas 中按组计算相关性
如何计算pandas中的滑动相关性
如何计算 Pandas 中两列之间的相关性

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注