У меня есть еженедельные почасовые данные FX, которые мне нужно преобразовать в ячейки «1D» или «24 часа» с понедельника по четверг в 12:00 и в 21:00 в пятницу, всего 5 дней в неделю:
Date rate
2020-01-02 00:00:00 0.673355
2020-01-02 01:00:00 0.67311
2020-01-02 02:00:00 0.672925
2020-01-02 03:00:00 0.67224
2020-01-02 04:00:00 0.67198
2020-01-02 05:00:00 0.67223
2020-01-02 06:00:00 0.671895
2020-01-02 07:00:00 0.672175
2020-01-02 08:00:00 0.672085
2020-01-02 09:00:00 0.67087
2020-01-02 10:00:00 0.6705800000000001
2020-01-02 11:00:00 0.66884
2020-01-02 12:00:00 0.66946
2020-01-02 13:00:00 0.6701600000000001
2020-01-02 14:00:00 0.67056
2020-01-02 15:00:00 0.67124
2020-01-02 16:00:00 0.6691699999999999
2020-01-02 17:00:00 0.66883
2020-01-02 18:00:00 0.66892
2020-01-02 19:00:00 0.669345
2020-01-02 20:00:00 0.66959
2020-01-02 21:00:00 0.670175
2020-01-02 22:00:00 0.6696300000000001
2020-01-02 23:00:00 0.6698350000000001
2020-01-03 00:00:00 0.66957
Таким образом, количество часов в каждые несколько дней недели неравномерно, т.е. понедельник = 00:00:00 понедельника до 12:00:00 понедельника, вторника (а также среды, четверга) = т.е. 13:00:00 понедельника, хотя 12 :00:00 вторник и пятница = с 13:00:00 до 21:00:00
Пытаясь найти решение, я вижу, что база теперь устарела, а методы смещения/происхождения не работают должным образом, вероятно, из-за неравного количества строк в день:
df.rate.resample('24h', offset=12).ohlc()
Я потратил часы, пытаясь найти решение
Как можно просто объединить в столбцы ohlc() все строки данных между каждой отметкой времени 12:00:00?
желаемый результат будет выглядеть примерно так:
Out[69]:
open high low close
2020-01-02 00:00:00.0000000 0.673355 0.673355 0.673355 0.673355
2020-01-03 00:00:00.0000000 0.673110 0.673110 0.668830 0.669570
2020-01-04 00:00:00.0000000 0.668280 0.668280 0.664950 0.666395
2020-01-05 00:00:00.0000000 0.666425 0.666425 0.666425 0.666425