我有这样的数据:
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
.....
我想计算长度为wind
的window
对dataframe
中的整个column
Close
的rolling
回报(滚动百分比变化)。我尝试了这个,但是我得到了一个奇怪的输出:
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时,dropna
和axis = 1
将删除整个列
df = closing_data.pct_change(periods=wind, axis=0).dropna(axis=0)