重新采样分钟数据

aoz*_*kan 23 python pandas

我在开放范围/第一小时(美国东部时间上午9:30-10:30)有基于分钟的OHLCV数据.我想重新采样这些数据,这样我可以获得一个60分钟的值,然后计算范围.

当我在数据上调用dataframe.resample()函数时,我得到两行,初始行在上午9:00开始.我期待只有一行从上午9:30开始.

注意:初始数据从9:30开始.

在此输入图像描述

编辑:添加代码:

# Extract data for regular trading hours (rth) from the 24 hour data set
rth = data.between_time(start_time = '09:30:00', end_time = '16:15:00', include_end = False)

# Extract data for extended trading hours (eth) from the 24 hour data set
eth = data.between_time(start_time = '16:30:00', end_time = '09:30:00', include_end = False)

# Extract data for initial balance (rth) from the 24 hour data set
initial_balance = data.between_time(start_time = '09:30:00', end_time = '10:30:00', include_end =      False)
Run Code Online (Sandbox Code Playgroud)

卡住试图按个别日期分开开盘范围并获得初始余额

conversion = {'Open' : 'first', 'High' : 'max', 'Low' : 'min', 'Close' : 'last', 'Volume' : 'sum'}
sample = data.between_time(start_time = '09:30:00', end_time = '10:30:00', include_end = False)
sample = sample.ix['2007-05-07']
sample.tail()

sample.resample('60Min', how = conversion) 
Run Code Online (Sandbox Code Playgroud)

默认情况下,重新采样从小时的开始处开始.我希望它从数据开始的地方开始.

And*_*den 23

您可以使用以下base参数resample:

sample.resample('60Min', how=conversion, base=30)
Run Code Online (Sandbox Code Playgroud)

上面的docs-link:

base:int,默认值0
    对于均匀细分1天的频率,聚合间隔的"原点".
    例如,对于"5min"频率,base可以在0到4之间.默认为0

  • 安迪,你摇滚!我浪费了很多时间试图让'resample('H',base = 30)`工作,直到我看到你的''60Min''技巧. (2认同)