Я уже задавал похожий вопрос, но смог собрать еще немного, но мне нужна дополнительная помощь. Определение того, как один диапазон дат / времени перекрывается со вторым диапазоном дат / времени? Я хочу иметь возможность проверить, когда два диапазона дат с датой / временем начала и датой / временем начала перекрываются.В моем type2 около 50 строк, а в type 1 - более 500. Я хочу иметь возможность взять начало и конец type2 и посмотреть, попадает ли он в диапазон type1.Вот фрагмент данных, однако даты меняются по списку с 2019-04-01 на следующие дни.
type1 type1_start type1_end
a 2019-04-01T00:43:18.046Z 2019-04-01T00:51:35.013Z
b 2019-04-01T02:16:46.490Z 2019-04-01T02:23:23.887Z
c 2019-04-01T03:49:31.981Z 2019-04-01T03:55:16.153Z
d 2019-04-01T05:21:22.131Z 2019-04-01T05:28:05.469Z
type2 type2_start type2_end
1 2019-04-01T00:35:12.061Z 2019-04-01T00:37:00.783Z
2 2019-04-02T00:37:15.077Z 2019-04-02T00:39:01.393Z
3 2019-04-03T00:39:18.268Z 2019-04-03T00:41:01.844Z
4 2019-04-04T00:41:21.576Z 2019-04-04T00:43:02.071Z`
Я нашел лучший способ найти это и прочитал Определить, перекрываются ли два диапазона дат и понимаю, как это должно быть сделано, но я не знаю достаточно окак вызвать переменные и заставить их работать.
#Here is what I have, but I am stuck and have no clue where to go form here:
import pandas as pd
from pandas import Timestamp
import numpy as np
from collections import namedtuple
colnames = ['type1', 'type1_start', 'type1_end', 'type2', 'type2_start', 'type2_end']
data = pd.read_csv('test.csv', names=colnames, parse_dates=['type1_start', 'type1_end','type2_start', 'type2_end'])
A_start = data['type1_start']
A_end = data['type1_end']
B_start= data['typer2_start']
B_end = data['type2_end']
t1 = data['type1']
t2 = data['type2']
r1 = (B_start, B_end)
r2 = (A_start, A_end)
def doesOverlap(r1, r2):
if B_start > A_start:
swap(r1, r2)
if A_start > B_end:
return false
return true
Было бы неплохо иметь csv
с результатом перекрытия истинного или ложного.Я смог заставить мои данные работать, используя это также Эффективно находить перекрытие диапазонов даты и времени с 2 кадрами данных , но это не правильно в результатах.Я добавил пару строк, которые, как я знаю, должны перекрываться с данными, и это не сработало.Мне нужно, чтобы каждый начало / конец типа 2 проходил через каждый тип 1.
Любая помощь будет принята с благодарностью.