假设我长时间有3个变量A,B和C.只需使用.corr()
A B C
23/2/2017 21.93 4.48 13.27
24/2/2017 2.65 10.18 11.95
25/2/2017 8.74 10.67 6.30
26/2/2017 6.88 10.26 8.40
27/2/2017 12.20 9.56 12.82
28/2/2017 8.12 9.54 2.67
A B C
A 1
B -0.93 1
C 0.38 -0.70 1
此矩阵也可以表格形式显示:
(A,B) (B,C) (C,A)
23/2/2017 NaN NaN NaN
24/2/2017 NaN NaN NaN
25/2/2017 -0.93 -0.70 0.38
我需要的是一个3天的滚动窗口,其成对关联填充如上表格式。我理解有pd.corring_corr(pairwise=True)
函数,只是不知道如何以表格格式获取所有可能的组合作为列。
感谢是否有人可以提供帮助。谢谢!
答案 0 :(得分:1)
如果你有很多专栏,你可以清理它,但你明白了:
df2 = pd.concat([pd.rolling_corr(df['A'], df['B'], 3), pd.rolling_corr(df['B'], df['C'], 3), pd.rolling_corr(df['A'], df['C'], 3)], axis=1)
df2.columns=['(A,B)', '(B,C)', '(A,C)']
您可以使用pairwise = True
并避免使用concat
,但对于您的应用程序,我认为上述方法效果很好。