Я начал с фрейма данных, в котором не было столбца метки времени. Моя цель - создать его. Все, что я знаю, это то, что строки сортируются по возрастанию во времени, и что минимальный первый день может быть 2008-01-01 или позже, а максимальный последний день может быть 2010-11-30. Строки представляют события, которые могли или не могли произойти в тот же день. Таким образом, для данного дня может быть несколько строк.
К счастью, этот фрейм данных включает столбец суточной ставки euribor3m, поэтому, предполагая, что каждый раз, когда значение тарифа изменяется, у нас появляется новый день, я использовал построчное сравнение и сохранял только те строки, в которых произошло изменение значения. Теперь, это не идеально, потому что технически два последовательных дня могут иметь одинаковое значение ставки, но это достаточно близко. Я создал новый df с именем res с подмножеством строк.
Затем я скачал отдельный файл с фактической скоростью euribor3m из другого источника. Этот файл содержит метку времени и не имеет нулевых или пропущенных дней. Я отфильтровал строки для диапазонов дат, которые я упомянул выше. Поэтому моя цель сейчас - присоединиться и применить временную метку к исходному файлу.
В этом и заключается подвох: я не могу просто выполнить объединение, потому что кадр данных res может пропускать определенные дни и / или одна и та же частота может происходить в течение нескольких дней подряд (как упоминалось выше). Однако, выполняя сравнение head () и tail () между двумя фреймами данных, шаблоны очень близки.
Итак, мой вопрос: как мне сопоставить эти два кадра данных на основе значений скорости, зная, что кадр данных res может пропустить определенные дни, и зная, что я не могу сопоставить отдельные значения в качестве ключей? Возможно, есть способ сопоставления с шаблоном, например, взятие x строк из скорости результирующего кадра euribor3m и простое сопоставление второго файла с x строками на основе последовательности и отбрасывание значений между ними (что будет отражать дни, о которых не сообщалось в исходном файле?)
#Original DF:
res['euribor3m'].tail(10)
41108 1.048
41123 1.046
41129 1.044
41138 1.041
41148 1.040
41157 1.039
41164 1.035
41170 1.030
41178 1.031
41187 1.028
Name: euribor3m, dtype: float64
#Second file DF:
#Notice the value column is the euribor 3m rate
euribor_daily_df.tail(10)
Date Value
2074 2010-11-16 1.046
2073 2010-11-17 1.044
2072 2010-11-18 1.041
2071 2010-11-19 1.040
2070 2010-11-22 1.039
2069 2010-11-23 1.035
2068 2010-11-24 1.030
2067 2010-11-25 1.031
2066 2010-11-26 1.028
2065 2010-11-29 1.027