Я хочу выполнить внешнее объединение для двух фреймов данных, ключами которых являются id: int
и date: pd.Timestamp
объекты.Кроме того, я хочу, чтобы ключи считались равными, если ids
одинаковы (нормальное поведение) и даты либо равны (нормальное поведение), либо разница между датами составляет максимум 30 дней.Затем, когда выполняется внешнее объединение, следует взять date
из правого фрейма данных.Ниже приведен пример:
left = pd.DataFrame({"id": [1, 2, 3], "date": [pd.Timestamp(2002, 3, 25), pd.Timestamp(2003, 4, 4), pd.Timestamp(2004, 6, 6)], "val_3": [77, 88, 11]})
right = pd.DataFrame({"id": [1, 2, 3], "date": [pd.Timestamp(2002, 3, 10), pd.Timestamp(2003, 4, 27), pd.Timestamp(2004, 5, 5)], "val_1": [99, 66, 33], "val_2": [101, 102, 103]})
И результат после объединения должен быть:
result = pd.DataFrame({"id": [1, 2, 3, 3], "date": [pd.Timestamp(2002, 3, 10), pd.Timestamp(2003, 4, 27), pd.Timestamp(2004, 6, 6), pd.Timestamp(2004, 5, 5)], "val_3": [77, 88, 11, np.nan], "val_1": [99, 66, np.nan, 33], "val_2": [101, 102, np.nan, 103]})
Ждем ваших ответов!