2つのデータフレーム内の単一の列間のPython相関試験

マッテオ:

私はそのような構造を持つ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は、いくつかの列があります。

2つのデータフレーム間の相関関係

これを行う方法上の任意のヘルプは素晴らしいことでしょう。

黒いくま :

それを直接計算します。

# 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)

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=377002&siteId=1