我有两个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.corr
和DataFrame.corrwith
都无法满足我的需求。
答案 0 :(得分:2)
您可以使用方法apply
和corrwith
:
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