Сравнение последовательных паттернов между двумя столбцами - панды - PullRequest
0 голосов
/ 06 января 2019

Я начал с фрейма данных, в котором не было столбца метки времени. Моя цель - создать его. Все, что я знаю, это то, что строки сортируются по возрастанию во времени, и что минимальный первый день может быть 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...