Для конкретного ответа на этот вопрос, просто используйте iloc
df.iloc[[0,5,6,7,8,1,2,3,4],:]
Для более обобщенного решения,
m = (df.ID.eq('Superior') | df.ID.eq('Regular')).cumsum()
pd.concat([df[m==0], df[m==2], df[m==1]])
или
order = (2,1)
pd.concat([df[m==0], *[df[m==c] for c in order]])
где order
определяет отображение от предыдущего заказа к новому.