python 两个数据帧中单列之间的相关性测试

python correlation test between single columns in two dataframes

我有两个结构类似的 DF:

df1 = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'C', 'D'])
df2 = pd.DataFrame(np.random.randn(8, 6), columns=['T', 'U', 'V', 'X','Y','Z'])

我想测试 DF1 的每一列与 DF2 的每一列之间的相关性 ('pearson')。然后将所有结果组合成一个相关矩阵。

过去有人问过类似的问题,但我的 DF1 有几列:

任何有关如何执行此操作的帮助都将非常有用。

直接计算:

# center and standardize
df1vals = (df1.values - df1.values.mean(axis=0)) / df1.values.std(axis=0)
df2vals = (df2.values - df2.values.mean(axis=0)) / df2.values.std(axis=0)

# compute correlation
pearsons = df1vals.T.dot(df2vals) / len(df1)

这有形状 (len(df1), len(df2))

如果确实需要使用corrwith,那么:

pd.concat([
    df1.corrwith(df2[c]) for c in df2
], axis=1, keys=df2.columns)