首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算DataFrame的所有列与另一个DataFrame的所有列之间的相关性?

计算DataFrame的所有列与另一个DataFrame的所有列之间的相关性?
EN

Stack Overflow用户
提问于 2015-03-08 21:24:37
回答 4查看 17.2K关注 0票数 15

我有一个DataFrame对象stocks,其中充满了股票回报。我有另一个DataFrame对象industries,其中充满了行业回报。我想找出每只股票与每个行业的相关性。

代码语言:javascript
运行
复制
import numpy as np
np.random.seed(123)

df1=pd.DataFrame( {'s1':np.random.randn(10000), 's2':np.random.randn(10000) } )
df2=pd.DataFrame( {'i1':np.random.randn(10000), 'i2':np.random.randn(10000) } )

要做到这一点,代价高昂的方法是合并两个DataFrame对象,计算相关性,然后将所有股票抛出股票,将行业关联抛出。有没有更有效的方法来做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-30 07:27:33

这里有一个一行,它在列上使用apply,并避免嵌套的for循环。主要的好处是apply在DataFrame中构建结果。

代码语言:javascript
运行
复制
df1.apply(lambda s: df2.corrwith(s))
票数 26
EN

Stack Overflow用户

发布于 2015-08-30 17:21:20

这里有一个比@JohnE更简单的答案,它使用的是熊猫而不是numpy.corrcoef。作为额外的奖励,您不必从一个愚蠢的2x2相关矩阵中检索相关值,因为熊猫的系列到串联相关函数只是返回一个数字,而不是一个矩阵。

代码语言:javascript
运行
复制
for s in ['s1','s2']:
    for i in ['i1','i2']:
        print df1[s].corr(df2[i])
票数 6
EN

Stack Overflow用户

发布于 2015-03-09 02:04:00

编辑添加:我将把这个答案留给后人,但是推荐后面的答案。特别是,如果你想要最简单的答案,就使用@ytsaig's,如果您想要一个更快的答案,则使用@Fail鲸‘s(似乎比@ytsaig的快5倍,我在OP中使用了数据,速度和我的速度差不多)。

原始答案:您可以使用numpy.corrcoef(),它与熊猫中的corr基本相同,但语法可能更适合您想要的内容。

代码语言:javascript
运行
复制
for s in ['s1','s2']:
    for i in ['i1','i2']:
        print( 'corrcoef',s,i,np.corrcoef(df1[s],df2[i])[0,1] )

指纹:

代码语言:javascript
运行
复制
corrcoef s1 i1 -0.00416977553597
corrcoef s1 i2 -0.0096393047035
corrcoef s2 i1 -0.026278689352
corrcoef s2 i2 -0.00402030582064

或者,您也可以将结果加载到带有适当标签的dataframe中:

代码语言:javascript
运行
复制
cc = pd.DataFrame()     
for s in ['s1','s2']:
    for i in ['i1','i2']:
        cc = cc.append( pd.DataFrame(
             { 'corrcoef':np.corrcoef(df1[s],df2[i])[0,1] }, index=[s+'_'+i]))

看起来是这样的:

代码语言:javascript
运行
复制
       corrcoef
s1_i1 -0.004170
s1_i2 -0.009639
s2_i1 -0.026279
s2_i2 -0.004020
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28932065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档