Задать вопрос
@stead

Посчитать среднюю задержку во времени?

Добрый день,
У меня есть список datetime:
[datetime.datetime(2021, 12, 20, 16, 54, 56), datetime.datetime(2021, 12, 20, 16, 54, 57), datetime.datetime(2021, 12, 20, 16, 54, 57)]


Я хочу как то получить среднюю задержку между датами(в секундах)

Можно было бы удалять средний элемент, и уже их считать, но не точно это.
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Drill
dates = [datetime.datetime(2021, 12, 20, 16, 54, 56), datetime.datetime(2021, 12, 20, 16, 54, 57), datetime.datetime(2021, 12, 20, 16, 54, 57)]

average = sum(abs(x-y).total_seconds() for x, y in zip(dates, dates[1:])) / (len(dates) - 1)
print(average)

>>> 0.5
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ScriptKiddo
@ScriptKiddo
from more_itertools import windowed
import datetime
import statistics

dates = [
    datetime.datetime(year=2021, month=12, day=20, hour=16, minute=54, second=56),
    datetime.datetime(year=2021, month=12, day=20, hour=16, minute=54, second=57),
    datetime.datetime(year=2021, month=12, day=20, hour=16, minute=54, second=57),
]


diffs = []

for first, second in windowed(dates, 2):
    diffs.append((second-first).total_seconds())

print(f'Avg: {statistics.mean(diffs)}')


Avg: 0.5

Process finished with exit code 0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы