Как объединить два кадра данных по дате (с точностью до миллисекунды), отбрасывая устаревшие записи - PullRequest
0 голосов
/ 12 октября 2019

Предположим, у нас есть два кадра данных временных рядов: 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.

Мое нынешнее «решение» очень примитивно. Я объединяю два (внешнее соединение), а затем просто заполняю. И это очень плохо, так как он не дает нужного мне результата, как описано выше.

Буду благодарен за любые указатели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...