У меня есть такой фрейм данных
df1 = pd.DataFrame({'Site': ["S1", "S2", "S3", "S4", "S5", "S6","S7","S8","S9"],
'Sitelink': [" ","S1","S2","S6","S4"," ","S8"," ","S7"],
'level': ["R", "T", "P", "T", "P", "R","T","R","P"],
'Weight':["55","55","55","85","85","80","150","190","200"]})
столбец «Сайт» будет всегда уникальным
столбец «Ссылка на сайт» захватывает сайт следующего уровня для каждого сайта
столбец 'level' имеет 3 значения - R, T, P, где иерархия R
столбец 'Weight' может принимать любое значение.
Выход должен удовлетворятьусловие, чтобы вес сайта более высокого уровня всегда был меньше или равен сайту более низкого уровня.Ожидаемый результат в кадре данных должен быть таким:

Я пытаюсь зациклить кадр данных и сравнить каждый сайт с следующим уровнем.Есть ли лучший подход для этого?