I have a dataframe such as:
Groups Name start end sum
1 G1 A 451 954 1405
2 G1 B 451 951 1402
3 G1 C 451 969 1420
4 G1 D 463 870 1333
5 G1 E 463 888 1351
6 G1 X 230 450 680
7 G1 Z 229 450 681
8 G2 F 119 841 960
9 G2 G 118 842 960
10 G3 H 460 790 1250
11 G3 I 123 300 177
12 G4 J 343 878 1221
13 G4 K 343 878 1221
14 G4 L 320 862 1182
I would like for each Groups to keep only one interval representant (an interval meaning that df.start
and df.end
overlaps between rows), I explain:
For exemple, in the G1 there are 2 intervals groups :
Interval 1 (with min = 451
and max = 969
):
Name start end sum
A 451 954 1405
B 451 951 1402
C 451 969 1420
D 463 870 1333
E 463 888 1351
Then I take the biggest df.sum
(here 1420
)
and
Interval2 (with min = 229
and max = 450
)
Name start end sum
X 230 450 680
Z 229 450 681
Then I take the biggest df.sum
(here 681
)
If I do that for the whole dataframe I get:
Groups Name start end sum
3 G1 C 451 969 1420
7 G1 Z 229 450 681
9 G2 G 118 842 960
10 G3 H 460 790 1250
11 G3 I 123 300 177
12 G4 J 343 878 1221
Does someone have an idea?
Here are the data in dictionary format :
{'Groups Name start end sum': {0: 'G1 A 451 954 1405', 1: 'G1 B 451 951 1402', 2: 'G1 C 451 969 1420', 3: 'G1 D 463 870 1333', 4: 'G1 E 463 888 1351', 5: 'G1 X 230 450 680', 6: 'G1 Z 229 450 681', 7: 'G2 F 119 841 960', 8: 'G2 G 118 842 960', 9: 'G3 H 460 790 1250', 10: 'G3 I 123 300 177', 11: 'G4 J 343 878 1221', 12: 'G4 K 343 878 1221', 13: 'G4 L 320 862 1182'}}