按列计算两个DataFrames的相关性

时间:2019-12-18 21:31:41

标签: python pandas dataframe correlation

我有两个DataFrame,并且我想计算它们之间的相关性而不循环:

import pandas as pd
df1 = pd.DataFrame({'A': range(0,4), 'B': range(14,10,-1)})
df2 = pd.DataFrame({'C': range(104,100,-1), 'D': range(2,6), 'E': range(11,7,-1)})
corr = pd.DataFrame(dict(c1=c1, **{c2:df2[c2].corr(df1[c1]) for c2 in df2.columns})
                    for c1 in df1.columns).set_index("c1")
corr.index.name = None

现在corr

     C    D    E
A -1.0  1.0 -1.0
B  1.0 -1.0  1.0

DataFrame.corrDataFrame.corrwith都无法满足我的需求。

2 个答案:

答案 0 :(得分:2)

您可以使用方法applycorrwith

df2.apply(df1.corrwith)

输出:

     C    D    E
A -1.0  1.0 -1.0
B  1.0 -1.0  1.0

答案 1 :(得分:1)

串联:

pd.concat([df1, df2], axis=1, keys=['df1', 'df2']).corr().loc['df1', 'df2']

     C    D    E
A -1.0  1.0 -1.0
B  1.0 -1.0  1.0