我试图获取两个数据帧并运行逐行spearmanr相关性。我已经设置了代码以使其能够运行,但是要花很长时间,并且我希望有一种更好/更快的方法可以在那里运行它。表格看起来像这样:
df1(50x14492):
arange
和df2(50x14492):
TYPE GENRE1 GENRE2
Name1 .0945 .0845
Name2 .9074 Nan
Name3 1 0
我想获取df1.Name1和df2.Name2的相关信息,所以我有一个字典,上面写着{Name1:corr,Name2:corr2},所以我有以下代码。
TYPE GENRE1 GENRE2
Name1 .9045 .895
Name2 .074 1
Name3 .5 .045
由于数据长度的原因,有没有办法做到这一点并不会永远?
答案 0 :(得分:0)
如果我理解正确,请尝试以下操作:
from scipy.stats import spearmanr as spr
df1 = df1.set_index('TYPE')
df2 = df2.set_index('TYPE')
df1, df2 = df1.align(df2)
def scorr(t):
return spr(*t, axis=0, nan_policy='omit').correlation
pd.Series([*map(scorr, zip(df1.values, df2.values))], df1.columns)