Python 熊猫重新采样到不细分为 24 小时周期的时间段



我有一个pandas数据帧,其中包含高频(秒或分钟(股票数据。

e.g. 
Date      Time     Open  ...      Low    Close  Volume
DT                                                  ...                          
2020-10-09 09:30:00  10/09/2020  09:30:00  3432.50  ...  3432.25  3432.50      37
2020-10-09 09:30:01  10/09/2020  09:30:01  3432.50  ...  3432.25  3432.50       8
2020-10-09 09:30:02  10/09/2020  09:30:02  3432.50  ...  3432.25  3432.50      11
2020-10-09 09:30:03  10/09/2020  09:30:03  3432.25  ...  3432.25  3432.50      11
2020-10-09 09:30:04  10/09/2020  09:30:04  3432.25  ...  3432.25  3432.75     134
...       ...      ...  ...      ...      ...     ...
2020-10-14 15:59:53  10/14/2020  15:59:53  3461.25  ...  3461.25  3461.50      59
2020-10-14 15:59:56  10/14/2020  15:59:56  3461.50  ...  3461.25  3461.50      61
2020-10-14 15:59:57  10/14/2020  15:59:57  3461.25  ...  3461.00  3461.75      54
2020-10-14 15:59:58  10/14/2020  15:59:58  3461.50  ...  3461.50  3461.50      25
2020-10-14 15:59:59  10/14/2020  15:59:59  3461.50  ...  3461.50  3461.75      16

我可以很容易地将这些数据重新采样为分钟周期,平均细分为24小时(或1440分钟/天(。

rule = '60T'
df = df.resample(rule, closed='right', label='right').agg(
{'Open': 'first',
'High': 'max',
'Low': 'min',
'Close': 'last',
'Volume': 'sum'
}).dropna()

你如何在一段时间内做到这一点,而这段时间并没有平均划分为1440分钟/天?例如rule='65T'

典型的美国股市数据从美国东部时间9:30到16:00。对于65分钟的小节,我想重新采样以下时段:

09:30-10:35
10:35-11:40
11:40-12:45
12:45-13:50
13:50-14:55
14:55-16:00

我们可以通过将可选参数origin设置为日期时间索引DT中的起始值来resample

resample的文档来看,origin

调整分组的时间戳。起始时区必须与索引的时区匹配。

因此,为了将分组调整为从9:30开始,我们将origin的值设置为日期时间索引中的开始时间戳,即2020-10-09 09:30:00

除此之外,我们还需要设置可选参数closedleftlabelleft的值

d = {'Open': 'first', 'High': 'max', 'Low': 'min',
'Close': 'last', 'Volume': 'sum'}
df.resample(rule='65T', 
closed='left', label='left',
origin=df.index.min()).agg(d).dropna()

样本输出(仅供说明(

Open    High      Low   Close  Volume
DT                                                          
2020-10-09 09:30:00  3432.5  3432.5  3432.25  3432.5  2405.0 # 09:30-10:35
2020-10-09 10:35:00  3432.5  3432.5  3432.25  3432.5  2405.0 # 10:35-11:40
2020-10-09 11:40:00  3432.5  3432.5  3432.25  3432.5  2405.0 # 11:40-12:45
2020-10-09 12:45:00  3432.5  3432.5  3432.25  3432.5  2405.0 # 12:45-13:50
2020-10-09 13:50:00  3432.5  3432.5  3432.25  3432.5  2405.0 # 13:50-14:55
2020-10-09 14:55:00  3432.5  3432.5  3432.25  3432.5  2405.0 # 14:55-16:00

相关内容

  • 没有找到相关文章

最新更新