У меня есть DataFrame с доходностью для разных ценных бумаг в течение нескольких лет. Я хотел бы рассчитать корреляции в 100 дневных окнах в последний день каждого месяца.Расчет корреляции роллинг-окна для разного шага времени в пандах
rolcor = pd.rolling_corr(df2,window=100,pairwise = True)
Date Sec1 Sec2 Sec3 Sec4 ....
...
2006-01-24 0.000595 -0.009683 -0.004044 0.020969 ....
2006-01-25 0.013976 0.024152 -0.001015 0.019122 ....
2006-01-26 0.011730 0.008323 0.026423 -0.006254 ....
2006-01-27 0.020290 0.000000 0.014851 0.004196 ....
2006-01-30 0.046875 0.018937 0.000000 0.007660 ....
2006-01-31 -0.049118 -0.014852 -0.006829 -0.005529 ....
....
pd.rolling_corr
делает расчеты, но они сделаны для всех точек данных в исходном DataFrame в то время как мне нужно только в последний день каждого месяца. Любые предложения, как это сделать?
Это не так. В основном я хотел бы сделать то, что «pd.rolling_corr (df2, window = 100, pairwise = True)», но иметь корреляционные матрицы не для всех дат в df2, например, для конца месячные даты или на каждую 20-ю дату в df2. I.e. так что у возвращаемого DataFrame не были бы '2006-01-24, 2006-01-25, 2006-01-26, 2006-01-27, 2006-01-28, ...' даты, но 2006-01- 31, 2006-02-28, 2006-03-31, 2006-04-30, 2006-05-31, ... '. Я мог бы извлечь его из текущего результата 'pd.rolling_corr (df2, window = 100, pairwise = True)', но я хочу сократить время вычисления. – kbaltakys