В Python (и Pandas) у нас есть отличные структуры данных для работы с датами и временем.У нас есть datetime
, который представляет (дата и) время, и timedelta
, который представляет разницу во времени.
Теперь у меня есть список переменных, значения которых различаются в разное время.Существует ли эффективная структура данных для этого?Существует ли структура данных для определения «периодов»?
Моя реализация
В настоящее время я делаю это следующим образом:
- Я определяю данные-структура, содержащая информацию о значении переменных в формате кортежа.Переменные хранятся в виде ключей словаря, их значения (в формате кортежа) задают значение в соответствии с периодом даты и времени.Так, например,
("23-05-1990", "12-01-2000", 45)
означает, что значение переменной равно 45
от 23-05-1990
до 12-01-2000
.Если какая-либо из начальной или конечной строки даты и времени пуста, подразумевается, что на этом конце нет никаких ограничений.Так, например, ("12-01-2010", "", 13)
будет означать, что значение будет 13
от 12-01-2010
до навсегда в будущем. - Затем определяется функция, в которой вы даете имя переменной и заданную метку времени.Он использует эту структуру данных для оценки значения этой переменной для данной метки времени.
mydict = {
"a" : (
("23-05-1990", "12-01-2000", 45),
("12-01-2000", "12-01-2010", 78),
("12-01-2010", "", 123),
),
"b" : (
("", "12-01-2000", 145),
("14-01-2001", "12-01-2010", 781),
("2-01-2012", "", 13),
)
}
Теперь мне было интересно, есть ли лучший способ сделать это или что-то встроенное в Python.(или Pandas) библиотеки datetime для того же самого.