python - 我想找到 pandas 数据框中 1 列与所有其他列之间的协方差

标签 python numpy pandas covariance

我正在尝试分析国家证券交易所数据。我想使用 pandas 计算每只股票与指数的协方差(漂亮),然后计算每只股票的贝塔值。我该怎么办呢?

我找到了计算 1 列与另一列的协方差的方法,但我的数据框有大约 36 个股票收盘价列和 1 个指数收盘价列。如何使用单个命令计算索引列的所有列的协方差?

最佳答案

您首先需要计算价格的返回(您使用的是调整后的收盘价,对吧?)。

returns = df.pct_change()

接下来,您将协方差计算为一个系列(我使用字典理解来创建该系列):

index = 'SPY'  # Change to your ticker for the index.
s = pd.Series({symbol: returns[index].cov(returns[symbol]) 
               for symbol in df 
               if symbol != index})

这将为您提供每只股票与指数的协方差。

关于python - 我想找到 pandas 数据框中 1 列与所有其他列之间的协方差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786795/

相关文章:

python - ValueError : The truth value of a Series is ambiguous. 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all():返回具有空值的列

python - 删除 pandas 中的列

python - 比 groupby、unstack then fillna 更快的替代方案

python - 根据给定坐标填充 2D Numpy 数组

javascript - Django : provide dynamically generated data as attachment on button press

python - 重写 __eq__ 和 __hash__ 来比较两个实例的字典属性

python - 交换数组中的元素

python - Numpy 删除符合条件的多行

python - 在pytest测试开始时创建服务器

python - 在这种情况下,内存分配在 python 中是如何工作的?