• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

计算DataFrame的所有列和另DataFrame的所有列:间的相关性?

用户头像
it1352
帮助1

问题说明

我有一个充满股票收益的DataFrame对象stocks.我还有另一个充满行业回报的DataFrame对象industries.我想找到每种股票与每个行业的相关性.

I have a DataFrame object stocks filled with stock returns. I have another DataFrame object industries filled with industry returns. I want to find each stock's correlation with each industry.

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对象,计算相关性,然后丢弃所有库存与库存之间以及行业与行业之间的相关性.有没有更有效的方法可以做到这一点?

The expensive way to do this is to merge the two DataFrame objects, calculate correlation, and then throw out all the stock to stock and industry to industry correlations. Is there a more efficient way to do this?

正确答案

#1

这是一种单列代码,它在列上使用apply并避免了嵌套的for循环.主要优点是apply将结果构建在DataFrame中.

And here's a one-liner that uses apply on the columns and avoids the nested for loops. The main benefit is that apply builds the result in a DataFrame.

df1.apply(lambda s: df2.corrwith(s))

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcfkhca
系列文章
更多 icon
同类精品
更多 icon
继续加载