0

I have two df such as

df1

          Name  start1  end1
0  OK0100087.1     187   250
1  OK0100087.1     752   830
2  OK0100087.1     380   689

df2

            Name  start2  end2
0  OK0100087.1_0  0       375
1  OK0100087.1_1  376     750
2  OK0100087.1_3  751     1000

and I would like to merge the two df and get :

          Name  start1  end1 start2 end2 Name2
0  OK0100087.1     187   250  0     375  OK0100087.1_0
1  OK0100087.1     750   830  751   1000 OK0100087.1_3
2  OK0100087.1     380   689  752   830  OK0100087.1_3

so the idea is that I check for each start1-end1 value in wich interval start2-end2 it falls for instance;

          Name  start1  end1 start2 end2 Name2
0  OK0100087.1     187   250
1  OK0100087.1     752   830
2  OK0100087.1     380   689

row0: 187-250 is between [0-375] so I add this df2 line

          Name  start1  end1 start2 end2 Name2
0  OK0100087.1     187   250 0      375  OK0100087.1_0
1  OK0100087.1     752   830
2  OK0100087.1     380   689

row1: 752-830 is between [751-1000]so I add this df2 line

          Name  start1  end1 start2 end2 Name2
0  OK0100087.1     187   250  0     375  OK0100087.1_0
1  OK0100087.1     750   830  751   1000 OK0100087.1_3
2  OK0100087.1     380   689  

row2: 380-689 is between [376-750]so I add this df2 line

          Name  start1  end1 start2 end2 Name2
0  OK0100087.1     187   250  0     375  OK0100087.1_0
1  OK0100087.1     750   830  751   1000 OK0100087.1_3
2  OK0100087.1     380   689  752   830  OK0100087.1_3
double-beep
  • 5,031
  • 17
  • 33
  • 41
chippycentra
  • 3,396
  • 1
  • 6
  • 24

0 Answers0