У меня есть следующий набор данных:
d = {'person':[1,1,1,1,1,1],'id':['-8','-5','-4','-3','-3','-2'],'obs':
['A','B','C','D','E','F']}
df_start = pd.DataFrame(data=d)
Необходимо создать выходной набор данных, например:
d_end = {'id':[-8,-8,-5,-8,-5,-4,-5,-4,-3,-3,-5,-4,-3,-3],
'obs':['A','A','B','A','B','C','B','C','D','E','B','C','D','E'],
'id_group':[-8,-5,-5,-4,-4,-4,-3,-3,-3,-3,-2,-2,-2,-2]}
df_end = pd.DataFrame(data=d_end)
Я пытаюсь сгруппировать строки, используя новый столбец с именем id_group, который создается путем сравнения значений идентификаторов по строкам. Один идентификатор будет принадлежать его собственной группе идентификаторов. Идентификатор будет принадлежать другой группе идентификаторов, если (id + 4) больше или равен идентификатору в другой строке.
Не удалось продвинуться слишком далеко, используя цикл for, пытаясь это сделать, очень открыт для предложений