У меня есть этот обычный фрейм данных, проиндексированный 'Date', называемый ES:
Price Day Hour num_obs med abs_med Ret
Date
2006-01-03 08:30:00 1260.583333 1 8 199 1260.416667 0.166667 0.000364
2006-01-03 08:35:00 1261.291667 1 8 199 1260.697917 0.593750 0.000562
2006-01-03 08:40:00 1261.125000 1 8 199 1260.843750 0.281250 -0.000132
2006-01-03 08:45:00 1260.958333 1 8 199 1260.895833 0.062500 -0.000132
2006-01-03 08:50:00 1261.214286 1 8 199 1260.937500 0.276786 0.000203
У меня есть этот другой фрейм данных, проиндексированный следующим MultiIndex.Первый индекс идет от 0 до 23, а второй - от 0 до 55. Другими словами, у нас есть ежедневные 5-минутные данные приращения.
5min_Ret
0 0 2.235875e-06
5 9.814064e-07
10 -1.453213e-06
15 4.295757e-06
20 5.884896e-07
25 -1.340122e-06
30 9.470660e-06
35 1.178204e-06
40 -1.111621e-05
45 1.159005e-05
50 6.148861e-06
55 1.070586e-05
1 0 1.485287e-05
5 3.018576e-06
10 -1.513273e-05
15 -1.105312e-05
20 3.600874e-06
...
Я хочу создать столбец в исходном фрейме данных ES, который будет иметь соответствующий '5min_Ret' в каждом соответствующем комбо час / 5 минут.
Я пробовал несколько вещей: циклический переход по строкам, нахождение некоторой функции применения.Но пока ничего не получалось.Я чувствую, что я пропускаю простое и Pythonic решение здесь.
Ожидаемый вывод создает новый столбец с именем '5min_ret' для исходного кадра данных, в котором каждая строка соответствует правильной паре час / 5 минут из меньшего кадра данных, содержащего 5min_ret
Price Day Hour num_obs med abs_med Ret 5min_ret
Date
2006-01-03 08:30:00 1260.583333 1 8 199 1260.416667 0.166667 0.000364 xxxx
2006-01-03 08:35:00 1261.291667 1 8 199 1260.697917 0.593750 0.000562 xxxx
2006-01-03 08:40:00 1261.125000 1 8 199 1260.843750 0.281250 -0.000132 xxxx
2006-01-03 08:45:00 1260.958333 1 8 199 1260.895833 0.062500 -0.000132 xxxx
2006-01-03 08:50:00 1261.214286 1 8 199 1260.937500 0.276786 0.000203 xxxx