pct_change с мультииндексом в python - PullRequest
0 голосов
/ 20 декабря 2018

Представьте, что у меня есть фрейм данных с мультииндексом (запас и дата).Я хотел бы рассчитать pct_change из закрытия столбца.Я использую этот код:

data['win'] = data.Close.pct_change()*100

        Open    Close   High    Low Volume  Adj_Close   win
Ticker  Date                            
AAPL    2018-12-14  169.000000  165.479996  169.080002  165.279999  40703700    165.479996  NaN
2018-12-17  165.449997  163.940002  168.350006  162.729996  44287900    163.940002  -0.930622
2018-12-18  165.380005  166.070007  167.529999  164.389999  33841500    166.070007  1.299259
2018-12-19  166.000000  160.889999  167.449997  159.089996  48889400    160.889999  -3.119171
AMZN    2018-12-14  1638.000000 1591.910034 1642.569946 1585.000000 6367200 1591.910034 **889.440017**
2018-12-17  1566.000000 1520.910034 1576.130005 1505.010010 8829800 1520.910034 -4.460051
2018-12-18  1540.000000 1551.479980 1567.550049 1523.010010 6523000 1551.479980 2.009977
2018-12-19  1543.050049 1495.079956 1584.530029 1483.180054 8654400 1495.079956 -3.635240

Он работает нормально, но когда он начинается с AMZN pct_change, первый неверный, потому что он использует последнее значение AAPL.

Как я могу изменитьформула для правильного вычисления pct_change?

Решение должно быть таким:

        Open    Close   High    Low Volume  Adj_Close   win
Ticker  Date                            
AAPL    2018-12-14  169.000000  165.479996  169.080002  165.279999  40703700    165.479996  NaN
2018-12-17  165.449997  163.940002  168.350006  162.729996  44287900    163.940002  -0.930622
2018-12-18  165.380005  166.070007  167.529999  164.389999  33841500    166.070007  1.299259
2018-12-19  166.000000  160.889999  167.449997  159.089996  48889400    160.889999  -3.119171
AMZN    2018-12-14  1638.000000 1591.910034 1642.569946 1585.000000 6367200 1591.910034 Nan
2018-12-17  1566.000000 1520.910034 1576.130005 1505.010010 8829800 1520.910034 -4.460051
2018-12-18  1540.000000 1551.479980 1567.550049 1523.010010 6523000 1551.479980 2.009977
2018-12-19  1543.050049 1495.079956 1584.530029 1483.180054 8654400 1495.079956 -3.635240
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...