Hello All我有两个数据框,包含3列,col1中的每一行都有82个不同于列变量的值,因此我的df2有三个相同的列,这三列具有不同的值
df1.head()
ID variable value
0 ENSG3 AE02_ID 0.000001
1 ENSG1 AE02_ID 0.329180
2 ENSG8 AE02_ID 0.000000
3 ENSG10 AE02_ID 29.157761
4 ENSG20 AE02_ID 0.633884
和df2.head()
Geneid variable value
0 ENSG60 AE02_ID 7.408430
1 ENSG53 AE02_ID 0.000000
2 ENSG94 AE02_ID 2.556464
3 ENSG49 AE02_ID 0.032384
4 ENSG9 AE02_ID 0.000000
我想在这两个数据帧上进行Pearson相关,输出数据帧应该具有来自两个数据帧的所有可能组合的相关系数。比如像这样的东西
ID1 ID2 coefficient
ENSG60 ENSG3 0.2
ENSG1 ENSG53 0.14
.
.
我试过这个班轮df1.value.corrwith(df2.value)
但它只给出一个系数与相应的
答案 0 :(得分:1)
pandas.DataFrame.corrwith应该适合你。 numpy.corrcoef的另一种选择:
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. ]]
corrwith
和corrcoef
都是一样的。