python Pandas相关矩阵?

yi0zb3m4  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(153)

我有一个很大的DataFrame;所有列的值都是浮点数,索引类型为DateTimeIndex。例如,下面是我的DataFrame的第一部分:

col0 col1 col2 col3 col4 ...
2035-10-30  1.0  1.0  1.0  1.0  1.0 ...   
2035-10-31  1.0  1.0  1.0  1.0  1.0 ...
2035-11-01  1.0  1.0  1.0  1.0  1.0 ...
2035-11-02  1.0  1.0  1.0  1.0  1.0 ...
    ...     ...  ...  ...  ...  ... ...

对于我的索引列表中的每个元素(即每个日期),我想使用.corr()方法找到DataFrame的最后1000行的相关矩阵,如下面的代码所示:

for d in df.index:
    cor_mat = other_df[:d].tail(1000).corr()

在上面的代码中,dfother_df都具有相同的维度和相同的索引。
我目前的速度非常慢,因为我的DataFrame的维度非常大。我怎样才能将这个操作向量化,或者使它更有效率?我试过使用.rolling()方法,但还没有得到正确的答案。任何帮助将不胜感激。

okxuctiv

okxuctiv1#

你在使用滚动法时遇到了什么问题?你可以这样用它来计算每个日期的相关矩阵。

window_size = 1000
corr_matrices =df.rolling(window_size).corr()
corr_matrices_last =  corr_matrices.groupby(level=0).tail(1)
corr_matrices_last = corr_matrices_last.dropna()

相关问题