【发布时间】:2019-12-07 16:02:39
【问题描述】:
我有一个包含多个变量的每周时间序列,我正在尝试查看过去 26 周相关性与之前所有 26 周相关性的百分比排名。
所以我可以使用 pandas 中的 pd.corr 函数生成前 26 周的相关矩阵,但我不知道如何循环遍历所有以前的周期,也可以找到这些相关性的不同值然后进行排名。
我希望有更好的方法来实现这一点,如果有,请告诉我
我已经尝试计算并行数据帧,但我无法编写一个公式来对最近的数据帧进行排名 - 所以我相信解决方案在于多索引。
'''蟒蛇
daterange = pd.date_range('20160701', periods = 100, freq= '1w')
np.random.seed(120)
df_corr = pd.DataFrame(np.random.rand(100,5), index= daterange, columns = list('abcde'))
df_corr_chg=df_corr.diff()
df_corr_chg=df_corr_chg[1:]
df_corr_chg=df_corr_chg.replace(0, 0.01)
d=df_corr_chg.shape[0]
df_CCC=df_corr_chg[::-1]
for s in range(0,d-26):
i=df_CCC.iloc[s:26+s]
我正在寻找一个显示不同时间相关性的多索引表
输出示例 例如(格式问题)
a b
a 1 1 -0.101713
2 1 -0.031109
n 1 0.471764
b 1 -0.101713 1
2 -0.031109 1
n 0.471764 1
【问题讨论】:
-
您能否描述得更好一些,您的相关矩阵应该是什么样的? 1,2,3 是星期,对吧?你想拥有最后的 26 周吗?但那是什么列呢?过去 26 周的平均汇率?如果是这样,我猜平均和单周之间的相关性为 1 是不现实的,对吧?
-
您好,给出的示例是针对输出的,因此 1、2、3,每个都表示前 1,2 和 3 个 26 周期间的相关性。列和行都是资产 - 1 的相关性是因为变量具有完全相同的差异(在这种情况下它是相同的变量)。
-
您的数据框是否只包含每个交易品种和每周的一个价格?你的周数是多少,还是只有日期?
-
输入数据的样本可能会有所帮助。
-
数据框有超过 500 次每周更改 20 多个变量,并且以日期值给出周数
标签: python pandas dataframe multidimensional-array indexing