панды - групповой идентификатор и дата и вычисление совокупного дохода по различным горизонтам - PullRequest
0 голосов
/ 20 июня 2019

Учитывая DataFrame, который выглядит следующим образом:

           ticker         date       return
0            AAPL   2012-12-31     0.032615
1            AAPL   2013-01-02     0.036938
2            AAPL   2013-01-03     0.023232
3            AAPL   2013-01-04     0.014632
5            AMZN   2013-01-07    -0.007089
6            AMZN   2013-01-08     0.003060
7            AMZN   2013-01-09    -0.015760
8            AMZN   2013-01-10    -0.019112
9            GOOG   2012-12-31     0.032615
10           GOOG   2013-01-02     0.036938
11           GOOG   2013-01-03     0.023232
12           GOOG   2013-01-04     0.014632
13           GOOG   2013-01-07    -0.017902
13           GOOG   2013-01-08    -0.007089
14           GOOG   2013-01-09     0.003060
15           GOOG   2013-01-10    -0.015760

Моя цель заключается в том, чтобы для каждой строки у меня был другой столбец, в котором сообщалось бы, каким будет совокупный доход тикера за 5, 21, 63 и 252 дня вперед. Например, совокупный доход на пять дней вперед от 31 декабря 2012 года для GOOG, который я могу вычислить, выполнив:

((1 + df.iloc[9:13]['return']).cumprod()-1).iloc[-1].shift(-5)

Однако я хочу сделать это максимально эффективно. Я знаю, как группировать тикеры и даты, но как я могу также накапливать доходы за некоторый горизонт и одновременно сдвигать их обратно? Возможно ли это даже в пандах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...