我有个事件 DataframeGroupBy对象,其中包含3个组。
90
Date Open High Low Close
1997-10-28 960.46 983.12 855.27 921.85
1998-09-21 1084.19 1084.19 939.98 1023.89
1998-10-15 1023.89 1066.11 923.32 1047.49
2000-10-16 1447.67 1461.63 1327.06 1374.62
2000-11-09 1379.42 1438.44 1306.06 1400.13
2000-12-29 1374.45 1388.81 1254.19 1320.28
2001-03-15 1302.13 1307.14 1155.06 1173.56
2001-10-03 1083.35 1096.95 944.07 1071.51
2002-08-27 884.66 965.00 833.44 934.82
2007-08-15 1534.10 1547.02 1404.36 1406.70
2007-11-23 1531.02 1552.76 1415.64 1440.70
2008-02-07 1416.25 1416.25 1270.05 1336.91
2008-07-08 1339.87 1366.59 1240.68 1273.70
2009-01-26 903.25 943.85 804.30 836.57
2010-05-19 1217.07 1219.80 1065.79 1115.05
2011-10-05 1153.50 1220.39 1074.77 1144.03
2011-10-31 1144.11 1292.66 1134.95 1253.30
2013-10-30 1687.15 1775.22 1646.47 1763.31
2015-02-20 2032.34 2110.61 1980.90 2110.30
2015-10-06 1951.45 2020.86 1871.91 1979.92
2016-02-09 1916.68 1947.20 1812.29 1852.21
2016-07-08 2077.60 2131.71 1991.68 2129.90
2018-05-21 2651.65 2742.10 2594.62 2733.01
2019-02-21 2644.89 2789.88 2631.05 2774.88
2019-03-19 2780.67 2852.42 2722.27 2832.57
2019-10-31 2920.40 3050.10 2892.66 3037.56
95
Date Open High Low Close
2000-04-21 1509.15 1527.13 1339.33 1434.54
2002-08-01 976.98 979.63 775.68 884.66
2008-09-22 1281.66 1303.04 1133.50 1207.09
2008-11-11 946.43 1007.37 845.27 898.95
2008-12-05 898.95 916.88 741.02 876.07
2014-10-17 1983.34 1999.79 1820.66 1886.76
2014-11-12 1885.62 2041.28 1882.30 2038.25
2016-01-14 2023.15 2081.56 1878.93 1921.84
2016-03-04 1857.10 2009.13 1810.10 1999.99
2018-04-25 2633.45 2717.49 2553.80 2639.40
2018-12-07 2737.90 2800.18 2621.53 2633.08
2019-06-03 2859.84 2892.15 2728.81 2744.45
2019-06-27 2762.64 2964.15 2762.64 2924.92
2019-08-16 2998.77 3027.98 2822.12 2888.68
2019-09-11 2913.48 3000.93 2834.97 3000.93
2019-10-07 3009.08 3021.99 2855.94 2938.79
98
Date Open High Low Close
2000-03-28 1387.09 1553.10 1346.46 1507.73
2008-10-16 1207.09 1221.15 839.80 946.43
2011-08-16 1343.80 1346.10 1101.54 1192.76
2015-09-10 2101.99 2103.47 1867.01 1952.29
2018-02-08 2798.96 2872.87 2580.56 2581.00
2018-03-06 2601.78 2789.15 2532.69 2728.12
2018-03-30 2710.18 2801.90 2585.89 2640.87
2018-10-18 2921.75 2939.86 2710.51 2768.78
2018-11-13 2775.66 2815.15 2603.54 2722.18
2019-01-02 2630.86 2685.44 2346.58 2510.03
2019-01-28 2491.92 2675.47 2443.96 2643.85
我还有从开始日期到结束日期的所有数据,作为 df 对象。
问题是如何在'n'天获取另一个具有DateTimeIndex偏移的DataframeGroupBy对象。
因此,该算法适用于每个组:
将结果打包到新的DataframeGroupBy对象中。
# shit on 1 day
n = 1
for name in events.groups.keys():
# get the index
idx = events.groups[name]
print(idx)
idx = idx.shift(n, freq='b')
new_data = df.reindex(idx)
print(new_data)
我正在尝试解决这样的问题。可能不是最佳解决方案,但现在我仍然不知道如何将新数据分组到DataframeGroupBy中。
可以用优雅的方式做吗? 预先谢谢你!