你需要同样index
的Series
作为columns
的DataFrame
对对齐Series
的DataFrame
,并添加axis=1
于corrwith
进行行的相关性:
s1 = pd.Series(s.values, index=df.columns) print (s1) a -1 b 5 c 0 d 0 e 10 f 0 g -7 dtype: int64 print (df.corrwith(s1, axis=1)) 0 -0.166667 1 0.839146 2 -0.353553 dtype: float64
print (df.corrwith(pd.Series(v, index=df.columns), axis=1)) 0 -0.166667 1 0.839146 2 -0.353553 dtype: float64
编辑:
您可以指定列并使用子集:
cols = ['a','b','e'] print (df[cols]) a b e 0 1 0 0 1 0 1 1 2 1 1 0 print (df[cols].corrwith(pd.Series(v, index=df.columns), axis=1)) 0 -0.891042 1 0.891042 2 -0.838628 dtype: float64