У меня есть два кадра данных, которые могут выглядеть следующим образом:
df1:
name start end
stuart 0 20
lamp 32 34
hamlet 16 100
df2:
name start end
LOXL1 30 40
FOXP3 0 11
INSN 43 70
Я видел много ответов, которые находятпересечение двух диапазонов.Мой любимый это:
range(max(start_1, start_2), min(end_1, end_2))
Отлично.Но для моего контекста мне просто нужно знать, пересекаются ли эти два диапазона вообще.Я не могу найти ответ, который подходит для моего варианта использования.Ожидаемый результат будет в основном получать имена из df2, для которых диапазон пересекается с df1.Ожидаемый результат будет:
name start end intersects
stuart 0 20 FOXP3
lamp 32 34 LOXL1
hamlet 16 100 LOXL1|INSN
Или, если это проще (это решение на самом деле было бы идеально, но я могу работать с первым):
name start end intersects
stuart 0 20 FOXP3
lamp 32 34 LOXL1
hamlet 16 100 LOXL1
hamlet 16 100 INSN
What I 'Эффективно зацикливается на том, получает ли Истина / Ложь из того, пересекаются ли диапазоны между двумя строками, без цикла for.Цикл for не является жизнеспособным решением для меня, потому что у меня 40 тыс. Строк по сравнению с 6-метровыми.