计算滚动收益



我有这样的数据:

Close
Date
2022-06-01  148.710007
2022-05-31  148.839996
2022-05-27  149.639999
2022-05-26  143.779999
2022-05-25  140.520004
2022-05-24  140.360001
2022-05-23  143.110001
2022-05-20  137.589996
2022-05-19  137.350006
2022-05-18  140.820007
2022-05-17  149.240005
.....

我想计算长度为windwindowdataframe中的整个columnCloserolling回报(滚动百分比变化)。我尝试了这个,但是我得到了一个奇怪的输出:

df = closing_data.pct_change(periods=wind, axis=0).dropna(1)

结果不是我所期望的:

Empty DataFrame
Columns: []
Index: [2022-06-01 00:00:00, 2022-05-31 00:00:00, 2022-05-27 00:00:00, 2022-05-26 00:00:00, 2022-05-25 00:00:00, 2022-05-24 00:00:00, 2022-05-23 00:00:00, 2022-05-20 00:00:00, 2022-05-19 00:00:00, 2022-05-18 00:00:00, 2022-05-17 00:00:00, 2022-05-16 00:00:00, 2022-05-13 00:00:00, 2022-05-12 00:00:00, 2022-05-11 00:00:00, 2022-05-10 00:00:00, 2022-05-09 00:00:00, 2022-05-06 00:00:00, 2022-05-05 00:00:00, 2022-05-04 00:00:00, 2022-05-03 00:00:00, 2022-05-02 00:00:00, 2022-04-29 00:00:00, 2022-04-28 00:00:00, 2022-04-27 00:00:00, 2022-04-26 00:00:00, 2022-04-25 00:00:00, 2022-04-22 00:00:00, 2022-04-21 00:00:00, 2022-04-20 00:00:00, 2022-04-19 00:00:00, 2022-04-18 00:00:00, 2022-04-14 00:00:00, 2022-04-13 00:00:00, 2022-04-12 00:00:00, 2022-04-11 00:00:00, 2022-04-08 00:00:00, 2022-04-07 00:00:00, 2022-04-06 00:00:00, 2022-04-05 00:00:00, 2022-04-04 00:00:00, 2022-04-01 00:00:00, 2022-03-31 00:00:00, 2022-03-30 00:00:00, 2022-03-29 00:00:00, 2022-03-28 00:00:00, 2022-03-25 00:00:00, 2022-03-24 00:00:00, 2022-03-23 00:00:00, 2022-03-22 00:00:00, 2022-03-21 00:00:00, 2022-03-18 00:00:00, 2022-03-17 00:00:00, 2022-03-16 00:00:00, 2022-03-15 00:00:00, 2022-03-14 00:00:00, 2022-03-11 00:00:00, 2022-03-10 00:00:00, 2022-03-09 00:00:00, 2022-03-08 00:00:00, 2022-03-07 00:00:00, 2022-03-04 00:00:00, 2022-03-03 00:00:00, 2022-03-02 00:00:00, 2022-03-01 00:00:00, 2022-02-28 00:00:00, 2022-02-25 00:00:00, 2022-02-24 00:00:00, 2022-02-23 00:00:00, 2022-02-22 00:00:00, 2022-02-18 00:00:00, 2022-02-17 00:00:00, 2022-02-16 00:00:00, 2022-02-15 00:00:00, 2022-02-14 00:00:00, 2022-02-11 00:00:00, 2022-02-10 00:00:00, 2022-02-09 00:00:00, 2022-02-08 00:00:00, 2022-02-07 00:00:00, 2022-02-04 00:00:00, 2022-02-03 00:00:00, 2022-02-02 00:00:00, 2022-02-01 00:00:00, 2022-01-31 00:00:00, 2022-01-28 00:00:00, 2022-01-27 00:00:00, 2022-01-26 00:00:00, 2022-01-25 00:00:00, 2022-01-24 00:00:00, 2022-01-21 00:00:00, 2022-01-20 00:00:00, 2022-01-19 00:00:00, 2022-01-18 00:00:00, 2022-01-14 00:00:00, 2022-01-13 00:00:00, 2022-01-12 00:00:00, 2022-01-11 00:00:00, 2022-01-10 00:00:00, 2022-01-07 00:00:00, ...]

在您的情况下,您应该这样做,当存在NaN时,dropnaaxis = 1将删除整个列

df = closing_data.pct_change(periods=wind, axis=0).dropna(axis=0)

最新更新