Сначала вам понадобится способ заказать столбец глубины.Я бы предложил создать еще один столбец для хранения значений глубины в виде чисел.
Допустим, мы сначала создадим функцию для преобразования ваших данных и назовем ваш фрейм данных "df".Функция зависит от того, как организованы ваши значения в столбце глубины.Если все они в обычном порядке, вы можете попробовать что-то еще, но если ваши значения организованы, как в вашем примере, это может помочь:
def _depth_index(x):
if x=='1m':
return 1.0
elif x=='5m':
return 5.0
elif x =='90':
return 90.0
elif x=='eu' or x== 'MLD':
return 0.0 #Not sure what 'eu' or 'MLD' stands for... Might want to return something else.
else:
return 0.0 # Default value
После этого примените вашу функцию кновый столбец в вашем фрейме данных:
df['indexed_depth'] = df['depth'].apply(lambda x: _depth_index(x))
И просто отсортируйте ваши значения:
sorted_df = df.sort_values(['stations', 'indexed_depth'], ascending=[True, True])