Вот одно из решений, использующее collections.deque
:
from collections import deque
dq = deque(df['ID'])
res = {}
for i in list(dq):
res[i] = list(dq)[1:]
dq.rotate(-1)
Результат:
{'04': ['06', '01', '02', '03'],
'06': ['01', '02', '03', '04'],
'01': ['02', '03', '04', '06'],
'02': ['03', '04', '06', '01'],
'03': ['04', '06', '01', '02']}