我想在自然界中制作一个列布尔值之后计算两个pandas数据帧之间的相关系数。原始table
有两列:Group
列,其中包含两个处理组之一,现在为布尔值,另一列为Age
组。这些是我想要计算相关系数的两列。
我尝试使用.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
答案 0 :(得分:2)
在整个DataFrame上调用.corr()
会为您提供完整的相关矩阵:
>>> table.corr()
Group Age
Group 1.0000 -0.1533
Age -0.1533 1.0000
您可以改用单独的系列:
>>> table['Group'].corr(table['Age'])
-0.15330486289034567
这应该比使用完整矩阵并将其编入索引(使用df.corr().iat['Group', 'Age']
)更快。此外,无论Group
是bool还是int dtype,这都应该有效。
答案 1 :(得分:-1)
我的数据框由许多列组成。任何两个列之间的相关性是
**df.corr().loc['ColA','ColB']**
我们在两列都获得矩阵黑白