マッテオ:
私はそのような構造を持つ2つの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'])
私はDF2のすべての単一の列でDF1のすべての単一の列の間の相関(「ピアソン」)をテストしたいと思います。そして、1つの相関行列にすべての結果を組み合わせます。
同様の問題は、過去に頼まれましたが、私の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)