Pandas数据框中使用.corr()计算两列的相关系数

10
我想在将列变成布尔类型之后,计算pandas数据框中两列之间的相关系数。原始的有两列:一个GroupAge

我尝试使用.corr()方法:

table.corr(method='pearson')

但是我收到了这个返回值: 在这里输入图像描述

下面是前25行布尔表 table 的粘贴内容。我不知道是否缺少参数,或者如何解释这个结果。而且它也很奇怪,因为它也是1。提前感谢您的帮助!

    Group  Age
0      1   50
1      1   59
2      1   22
3      1   48
4      1   53
5      1   48
6      1   29
7      1   44
8      1   28
9      1   42
10     1   35
11     0   54
12     0   43
13     1   50
14     1   62
15     0   64
16     0   39
17     1   40
18     1   59
19     1   46
20     0   56
21     1   21
22     1   45
23     0   41
24     1   46
25     0   35
列,其中一个是两个治疗组之一,现在是布尔类型,另一个是组。这就是我希望计算相关系数的两列。
2个回答

27

在整个数据框上调用.corr(),可以得到完整的相关矩阵:

>>> table.corr()
        Group     Age
Group  1.0000 -0.1533
Age   -0.1533  1.0000

您可以使用单独的Series:
>>> table['Group'].corr(table['Age'])
-0.15330486289034567

使用矩阵的全部内容并进行索引(如df.corr().iat['Group', 'Age'])应该比这种方法更快。此外,这种方法适用于Group是布尔型还是整型。


-1

我的数据框包含许多列。任意两列之间的相关性为

**df.corr().loc['ColA','ColB']**

我们在两列之间得到矩阵


1
也许你应该测试一下你的解决方案,因为发布者发布了一组数据和期望的答案。res = df[['Group', 'Age']].corr()。print(res) - user1538798
当我想在数据框的列上尝试时,这对我起了作用。 - Babu Reddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接