python中两个数据帧之间的Pearson关联并输出列之间的所有组合

python中两个数据帧之间的Pearson关联并输出列之间的所有组合,python,pandas,numpy,Python,Pandas,Numpy,您好,我有两个数据帧,有3列,col1中的每一行都有82个不同的column变量值,因此我有df2,有三个相同的列,这三列的值不同 df1.head() 和df2.head() 我想对这两个数据帧进行Pearson关联,输出数据帧应该是两个数据帧中所有可能组合的相关系数。比如像这样的事情 ID1 ID2 coefficient ENSG60 ENSG3 0.2 ENSG1 ENSG53 0.14 . . 我试过使用这个单行程序df1.value.corrwith(df2.value

您好,我有两个数据帧,有3列,col1中的每一行都有82个不同的column变量值,因此我有df2,有三个相同的列,这三列的值不同

df1.head()

df2.head()

我想对这两个数据帧进行Pearson关联,输出数据帧应该是两个数据帧中所有可能组合的相关系数。比如像这样的事情

ID1    ID2   coefficient
ENSG60 ENSG3 0.2
ENSG1 ENSG53  0.14
.
.
我试过使用这个单行程序
df1.value.corrwith(df2.value)

但它只给出了一个系数,对应的

应该适合你们。替代方案包括:

它输出:

[[ 1.          0.02543264]
 [ 0.02543264  1.        ]]

corrwith
corrcoef
都是同一件事。

你能把你的完整资料给我看看吗?实际上,
corrwith
应该可以。你试过
numpy.correlate
吗?没有。完成什么?对不起,完成代码!!事实上,我在R中试过,它在那里起作用。但是现在我需要转换到python,我没有做任何详细的说明,而我只有一个描述的线性。不,实际上不是这个。这给了我系数矩阵,但我需要像ID1 ID2系数ENSG60 ENSG3 0.2这样的东西。现在请看我的问题,我已经展示了我的输出,除了抱歉误解,我已经更新了我的代码。请检查。这是一个对称矩阵,所以如果您只需要一个数字,您可以执行
结果[0,1]
。或者,
df1.a.corr(df1.b)
感谢您提供的解决方案,但对于单个数据帧,我有两个数据帧,每个数据帧具有不同的列值和不同的形状或尺寸。因此,上述解决方案对它不起作用。
ID1    ID2   coefficient
ENSG60 ENSG3 0.2
ENSG1 ENSG53  0.14
.
.
import numpy as np
import pandas as pd

df1 = pd.DataFrame({'a': np.random.random(5), 'b': np.random.random(5)})
result = np.corrcoef(df1.a,df1.b)
print(result)
[[ 1.          0.02543264]
 [ 0.02543264  1.        ]]