Слияние многосегментных временных рядов при помощи pandas.merge_asof()

Есть два набора данных:

  1. Набор ежедневных значений множества однородных объектов (много клиентов и их транзакции, много магазинов и их ежедневные продажи). Они организованные в длинную таблицу так, что для каждого объекта записаны значения на каждый день в масштабе двух лет (2020-21 года). В данных есть пропуски некоторых дат, когда объект переезжал с места на место, был сломан и т.д.

  2. Набор свойств каждого объекта с временной меткой, когда эти свойства были обновлены для 20-21 годов. Свойства такого характера: адрес, регион, тип учреждения, где объект находится и т.д. Как только объект куда-то переезжает, появляется новая запись с новым значением одного или нескольких свойств и временем обновления.

Есть задача, примерджить справа датафрейм 2 к датафрейму 1 так, чтобы на каждом участке ежедневного временного ряда кроме самих значений были актуальные на данный период свойства.

Я надеялся использовать

pd.merge_asof(left=df1.sort_values(by=['object_id', 'date']),
              right=df2.sort_values(by=['object_id', 'date'],
              on='object_id', by='date', direction='forward')

Однако на выходе получились данные размером df1, где все поля свойств имель значения NaN.


Ответы (0 шт):