python Pandas相关矩阵?

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

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

  1. col0 col1 col2 col3 col4 ...
  2. 2035-10-30 1.0 1.0 1.0 1.0 1.0 ...
  3. 2035-10-31 1.0 1.0 1.0 1.0 1.0 ...
  4. 2035-11-01 1.0 1.0 1.0 1.0 1.0 ...
  5. 2035-11-02 1.0 1.0 1.0 1.0 1.0 ...
  6. ... ... ... ... ... ... ...

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

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

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

okxuctiv

okxuctiv1#

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

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

相关问题