У меня есть несколько списков интервалов времени, и мне нужно найти интервалы времени (пересечение), которые являются общими для всех из них.
Например,
a = [['2018-02-03 15:06:30', '2018-02-03 17:06:30'], # each line is read as [start, end]
['2018-02-05 10:30:30', '2018-02-05 10:36:30'],
['2018-02-05 11:30:30', '2018-02-05 11:42:32']]
b = [['2018-02-03 15:16:30', '2018-02-03 18:06:30'],
['2018-02-04 10:30:30', '2018-02-05 10:32:30']]
c = [['2018-02-01 15:00:30', '2018-02-05 18:06:30']]
Результат будет
common_intv = [['2018-02-03 15:16:30','2018-02-03 17:06:30'],
['2018-02-05 10:30:30','2018-02-05 10:32:30']]
Я нашел это решение, которое должно работать и для временных интервалов, но мне было интересно, есть ли более эффективный способ сделать это в pandas.
Предлагаемое решение в ссылке будет обрабатывать два списка одновременно, то есть сначала найдет общие интервалы между a
и b
, затем поместит эти общие интервалы в переменную common
, а затем найдет общие интервалы между common
и c
и т. д. ...
Конечно, глобальное решение (с учетом всех интервалов одновременно) было бы еще лучше!