IIUC, вы можете сделать:
mask = df['x2'].shift().sub(df['x1']).abs()
df.Text.groupby(mask.gt(75).cumsum()).apply(' '.join)
Вывод:
0 Shinners cary Tate Adress)
1 SHipper ACC OLN MLITTHS
2 Not necotiapla
3 issven OY
Name: Text, dtype: object
Если вы хотите столбец Img
, вы можете сделать:
df.groupby(mask.gt(75).cumsum()).agg({'Img':list, 'Text':' '.join})
Выход:
Img Text
0 [7, 8, 9, 10] Shinners cary Tate Adress)
1 [11, 12] SHipper ACC OLN MLITTHS
2 [13, 14] Not necotiapla
3 [35, 36] issven OY