Предположим, у нас есть два кадра данных временных рядов: df1
и df2
. Частота наблюдений составляет примерно 1 секунду df1
и 1,1 - df2
. Иногда в данных есть пробелы. Предположим, они выглядят следующим образом:
df1
index_1 | something_else_1 | ...
2019-10-10 13:14:10.543 | ...
2019-10-10 13:14:11.700 | ...
2019-10-10 13:14:14:121 | ...
2019-10-10 13:14:15.122 | ...
df2
index_2 | something_else_2 | ...
2019-10-10 13:14:10.432 | ...
2019-10-10 13:14:11.555 | ...
2019-10-10 13:14:12.622 | ...
2019-10-10 13:14:13.721 | ...
2019-10-10 13:14:14.911 | ...
2019-10-10 13:14:16.002 | ...
Я хотел бы объединить их в индексе таким образом, что еслиразница между ближайшими временами составляет более 1 секунды, мы просто отбрасываем эти наблюдения и продолжаем. Таким образом, итоговый объединенный кадр данных будет выглядеть следующим образом:
merged_df
index_1 | index_2 | something_else_1 | something_else_2 | ...
2019-10-10 13:14:10.543 | 2019-10-10 13:14:10.432 | ...
2019-10-10 13:14:11.700 | 2019-10-10 13:14:11.555 | ...
2019-10-10 13:14:14.121 | 2019-10-10 13:14:14.911 | ...
2019-10-10 13:14:15.122 | 2019-10-10 13:14:16.002 | ...
, т.е. мы отбросили некоторые наблюдения с df2
, поскольку не было соответствующих наблюдений (в течение 1 секунды) в df1
.
Мое нынешнее «решение» очень примитивно. Я объединяю два (внешнее соединение), а затем просто заполняю. И это очень плохо, так как он не дает нужного мне результата, как описано выше.
Буду благодарен за любые указатели.