【发布时间】:2021-01-06 16:19:14
【问题描述】:
Open High Low Close
Date
2007-11-27 770.00 1050.00 770.00 962.90
2007-11-28 984.00 990.00 874.00 893.90
2007-11-29 909.00 914.75 841.00 884.20
2007-11-30 890.00 958.00 890.00 921.55
2007-12-03 939.75 995.00 922.00 969.30
2007-12-04 985.00 1056.00 976.00 1041.45
2007-12-05 1061.00 1099.50 1050.00 1082.45
2007-12-06 1089.00 1109.70 1051.00 1081.30
2007-12-07 1100.00 1134.00 1078.00 1102.40
2007-12-10 1110.00 1110.00 1061.10 1075.40
2007-12-11 1081.00 1089.00 1041.00 1047.65
2007-12-12 1032.00 1065.00 1016.00 1036.80
2007-12-14 1139.90 1140.00 1101.10 1110.50
2007-12-17 1140.00 1168.00 1021.50 1044.25
2007-12-18 1045.00 1109.90 1031.55 1074.95
2007-12-19 1091.00 1116.00 1046.30 1066.90
2007-12-20 1083.50 1083.50 1051.00 1060.20
2007-12-24 1095.00 1192.00 1085.25 1156.80
2007-12-26 1175.00 1214.00 1148.00 1199.90
2007-12-27 1215.00 1240.00 1204.00 1211.65
2007-12-28 1189.40 1274.00 1175.00 1249.10
2007-12-31 1263.35 1295.00 1261.00 1268.80
2008-01-01 1279.00 1319.00 1263.70 1296.85
2008-01-02 1310.25 1324.00 1270.00 1307.45
如何获得每个日期行的每周最高值(即从当前日期行回溯一周)?我可以使用 df["High"].rolling(7).max() 获得 7 天的滚动最大值,但这不是基于日期,而是基于 7 个滚动行。
预期输出:
Date
2007-11-27 1050.0 # from (2007, 11, 27), as no data before that
2007-11-28 1050.0 # from (2007, 11, 27), as no data before that
2007-11-29 1050.0 # from (2007, 11, 27), as no data before that
2007-11-30 1050.0 # from (2007, 11, 27), as no data before that
2007-12-03 1050.0 # from (2007, 11, 27)
2007-12-04 1056.0 # from (2007, 11, 28)
2007-12-05 1099.5 # from (2007, 11, 29)
2007-12-06 1109.7 # from (2007, 11, 30)
2007-12-07 1134.0 # from (2007, 12, 1)
2007-12-10 1134.0 # from (2007, 12, 4)
2007-12-11 1134.0 # from (2007, 12, 5)
2007-12-12 1134.0 # from (2007, 12, 6)
2007-12-14 1140.0 # from (2007, 12, 10), as no data for 8, and 10 is the immediate next date
2007-12-17 1168.0 # from (2007, 12, 11)
...
【问题讨论】:
-
给出预期的输出会很有用
-
如果你用 0 填满所有缺失的日子,你可以轻松使用你的 7 天滚动
标签: python python-3.x pandas dataframe