У меня есть данные возврата, которые индексируются с помощью DateTimeIndex следующим образом
>ES.head()
Date
2006-01-02 19:15:00 -0.000199
2006-01-02 19:20:00 -0.000199
2006-01-02 19:25:00 0.000000
2006-01-02 19:30:00 -0.000099
2006-01-02 19:35:00 -0.000099
Name: Price, dtype: float64
Когда я строю средние значения за 5 минут, я получаю следующее
fig = plt.figure()
ax1 = fig.add_subplot(111)
plt.plot(ES.groupby([ES.index.hour, ES.index.minute]).mean())
ax1.set_ylabel('Return')
ax1.set_xlabel('5-minute interval')
Когда я теперь отбрасываю все наблюдения с 16:00 до 17:00 и строю изображение, я получаю одно и то же изображение!?
mask = ~((ES.index.hour > 16) & (ES.index.hour < 17))
ES = ES[mask]
fig = plt.figure()
ax1 = fig.add_subplot(111)
plt.plot(ES.groupby([ES.index.hour, ES.index.minute]).mean())
ax1.set_ylabel('Return')
ax1.set_xlabel('5-minute interval')
С этим графиком
Я застрял в этом вопросе уже более суток, потому что я хочу снять возврат с 16:00 до 17:00 из-зак эффектам открытия / закрытия рынка, создающим чрезмерную доходность.
Почему мой фрейм данных не выполняет правильную поднаборку?
edit:
>ES['2007-01-03 15:30':'2007-01-03 17:30']
Date
2007-01-03 15:30:00 0.000263
2007-01-03 15:35:00 0.000000
2007-01-03 15:40:00 -0.000146
2007-01-03 15:45:00 0.000058
2007-01-03 15:50:00 0.000175
2007-01-03 15:55:00 0.000058
2007-01-03 16:00:00 0.000117
2007-01-03 16:05:00 0.000000
2007-01-03 16:10:00 0.000000
2007-01-03 16:15:00 0.000000
2007-01-03 16:20:00 -0.000175
2007-01-03 16:25:00 0.000175
2007-01-03 16:30:00 0.000000
2007-01-03 16:35:00 0.000000
2007-01-03 16:40:00 0.000000
2007-01-03 16:45:00 0.000000
2007-01-03 16:50:00 0.000000
2007-01-03 16:55:00 0.000000
2007-01-03 17:00:00 0.000058
2007-01-03 17:05:00 0.000292
2007-01-03 17:10:00 -0.000175
2007-01-03 17:15:00 0.000000
2007-01-03 17:20:00 0.000000
2007-01-03 17:25:00 0.000000
2007-01-03 17:30:00 0.000000
Name: Price, dtype: float64
>mask = ~((ES.index.hour > 16) & (ES.index.hour < 17))
>ES = ES[mask]
>ES['2007-01-03 15:30':'2007-01-03 17:30']
Date
2007-01-03 15:30:00 0.000263
2007-01-03 15:35:00 0.000000
2007-01-03 15:40:00 -0.000146
2007-01-03 15:45:00 0.000058
2007-01-03 15:50:00 0.000175
2007-01-03 15:55:00 0.000058
2007-01-03 16:00:00 0.000117
2007-01-03 16:05:00 0.000000
2007-01-03 16:10:00 0.000000
2007-01-03 16:15:00 0.000000
2007-01-03 16:20:00 -0.000175
2007-01-03 16:25:00 0.000175
2007-01-03 16:30:00 0.000000
2007-01-03 16:35:00 0.000000
2007-01-03 16:40:00 0.000000
2007-01-03 16:45:00 0.000000
2007-01-03 16:50:00 0.000000
2007-01-03 16:55:00 0.000000
2007-01-03 17:00:00 0.000058
2007-01-03 17:05:00 0.000292
2007-01-03 17:10:00 -0.000175
2007-01-03 17:15:00 0.000000
2007-01-03 17:20:00 0.000000
2007-01-03 17:25:00 0.000000
2007-01-03 17:30:00 0.000000
Name: Price, dtype: float64
Кажется, что моя маска не работает,однако, когда я пытаюсь сделать следующее, графики остаются такими же, пока удаляются соответствующие строки.
>ES['2007-01-03 15:30':'2007-01-03 17:30']
Date
2007-01-03 15:30:00 0.000263
2007-01-03 15:35:00 0.000000
2007-01-03 15:40:00 -0.000146
2007-01-03 15:45:00 0.000058
2007-01-03 15:50:00 0.000175
2007-01-03 15:55:00 0.000058
2007-01-03 16:00:00 0.000117
2007-01-03 16:05:00 0.000000
2007-01-03 16:10:00 0.000000
2007-01-03 16:15:00 0.000000
2007-01-03 16:20:00 -0.000175
2007-01-03 16:25:00 0.000175
2007-01-03 16:30:00 0.000000
2007-01-03 16:35:00 0.000000
2007-01-03 16:40:00 0.000000
2007-01-03 16:45:00 0.000000
2007-01-03 16:50:00 0.000000
2007-01-03 16:55:00 0.000000
2007-01-03 17:00:00 0.000058
2007-01-03 17:05:00 0.000292
2007-01-03 17:10:00 -0.000175
2007-01-03 17:15:00 0.000000
2007-01-03 17:20:00 0.000000
2007-01-03 17:25:00 0.000000
2007-01-03 17:30:00 0.000000
Name: Price, dtype: float64
>ES = ES.drop(ES.between_time('16:00','17:00').index)
>ES['2007-01-03 15:30':'2007-01-03 17:30']
Date
2007-01-03 15:30:00 0.000263
2007-01-03 15:35:00 0.000000
2007-01-03 15:40:00 -0.000146
2007-01-03 15:45:00 0.000058
2007-01-03 15:50:00 0.000175
2007-01-03 15:55:00 0.000058
2007-01-03 17:05:00 0.000292
2007-01-03 17:10:00 -0.000175
2007-01-03 17:15:00 0.000000
2007-01-03 17:20:00 0.000000
2007-01-03 17:25:00 0.000000
2007-01-03 17:30:00 0.000000
Name: Price, dtype: float64