Заполните отсутствующие временные метки и значения, используя python - PullRequest
0 голосов
/ 11 июля 2020

У меня есть список словарей, например

[{'time': 1594289677756, 'val': 1000.0}, 
{'time': 1594289785475, 'val': 1297.0}, 
{'time': 1594289854490, 'val': 1440.0}, 
{'time': 1594289864474, 'val': 1548.0},
...
... 
{'time': 1594289938481, 'val': 1648.0}]

Требуется, чтобы эти временные метки эпохи не имели разрыва более 1 секунды. Если есть пробел, то его необходимо заполнить вместе с val, которое может быть установлено на любое логическое значение, например, значение предыдущего элемента. Поскольку я новичок в python, я не уверен, как это лучше всего сделать.

Таким образом, в основном вывод должен быть похож на

[{'time': 1594289677756, 'val': 1000.0}, 
 {'time': 1594289678856, 'val': 1000.0},
 {'time': 1594289679856, 'val': 1000.0},
  ...
  ...
 {'time': 1594289678856, 'val': 1297.0},
  ...
 ...
... 
{'time': 1594289938481, 'val': 1648.0}]

1 Ответ

0 голосов
/ 11 июля 2020

Предполагая, что ваши временные метки указаны в миллисекундах, способ перебора ваших данных будет следующим:

for i in range(1, len(data)):
    prev_item = data[i - 1]
    curr_item = data[i]

    if abs(prev_item["time"] - curr_item["time"]) > 1000:
        # Logic here for gaps greater than 1 second

Затем вам нужно решить, что делать, если есть промежуток более 1 секунды. Имейте в виду, что если вы замените элемент его предыдущим, у вас будут накапливаться пробелы для следующих элементов.

...