用python绘制YoY价格的相关性。(绘制Dataframe行的相关性)

问题描述 投票:1回答:1

在试图用Python绘制一个DataFrame的YoY相关性的背景下。问题是如何得到代表每对变量 "AAPL"、"IBM "和 "MSFT "每年相关性的3对相关系数。然后用matplotlib绘制它们。

如何按行计算相关性?.corrwith 似乎是什么建议,但它它不工作在这里。

https:/www.geeksforgeeks.orgpython-pandas-dataframe-corrwith

我设法找到了一个熊猫数据框架,其中每一行代表年份,每一个元素代表一年来的累计价格。我想把累积的YoY价格的相关性,然后把它们作为时间的函数绘制出来。

数据的样子是这样的。

             AAPL           IBM         MSFT
Year                                        
2003   333.392142  21429.009979  6585.475002
2004   637.586428  22862.419960  6837.309986
2005  1678.695713  21121.199997  6519.779993
2006  2545.412858  20827.630028  6592.800003
2007  4603.665710  26528.350021  7638.409990
2008  5143.625731  27841.030014  6755.059990
2009  5278.287136  27444.059998  5779.759998
2010  9312.338573  33034.919891  6795.050001

最后的图表是这样的:

enter image description here

总结一下这个问题。如何将下面的数据,计算出每一年的3个对偶关系,然后用matplotlib来绘制结果?

下面提供了目前导入数据并进行操作的代码。注意用yfinance来加载数据。

#!pip install yfinance
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
ticker_Symbol = "AAPL", "MSFT", "IBM"
start_date = '2003-1-01'
end_date =  '2010-12-31'

df5 = yf.download(ticker_Symbol,start_date , end_date)
df  = df5[["Open"]]

print(df.head(3))

# Index the Year of each Value
df["Year"] = df.index.year
dfYearly = df.groupby(['Year']).sum()
dfYearly = dfYearly["Open"] 
dfYearly
python pandas matplotlib time-series pandas-groupby
1个回答
0
投票

你不能计算两个单数之间的相关性。

计算相关系数背后的想法是,有一个基本的 "人口 "相关系数,你通过计算数据样本的经验系数来估计。但如果这个样本的大小是1,你对任何潜在的相关信息都是零。

因此,如果你想计算单个年份的单独相关系数,你将需要没有按年份汇总的数据。那么实际上你可以使用 corrwith 作为每年的汇总方法。

© www.soinside.com 2019 - 2024. All rights reserved.