Тестовые данные следующие:
A B
Ankang Shaanxi Ankang Southeast
Baoding Anguo Baoding Anguo Northeast
Baoding Anguo Baoding Anguo Southeast
Changsha Hunan Changsha Hunan Bright
Ankang Shaanxi Ankang Northeast
Baoding Anguo Baoding Anguo Southwest
Baoding Anguo Baoding Anguo Upper
Ankang Shaanxi Ankang Southwest
Luoyang Henan Luoyang Henan Upper
Baoding Anguo Baoding Anguo Northwest
Changsha Hunan Changsha Hunan Lower
Ankang Shaanxi Ankang Southwest Upper
Ankang Shaanxi Ankang Northwest
< /code>
Я надеюсь, что смогу организовать его, как показано ниже < /p>
Первый столбец сортируется вместе с помощью встроенного алгоритма сортировки строк Pandas, и и Затем второй столбец сортируется с использованием алгоритма пользовательского порядка северо -востока, юго -востока, северо -запада, юго -запада, верхнего. сортировка У меня не было проблем сортировкой одного столбца, но он всегда терпел неудачу, когда я пытался сортировать два столбца вместе.import pandas as pd
data={'A':['Ankang Shaanxi','Baoding Anguo','Baoding Anguo','Changsha Hunan','Ankang Shaanxi',
'Baoding Anguo','Baoding Anguo','Ankang Shaanxi','Luoyang Henan','Baoding Anguo',
'Changsha Hunan','Ankang Shaanxi','Ankang Shaanxi'],
'B':['Ankang Southeast','Baoding Anguo Northeast','Baoding Anguo Southeast','Changsha Hunan Bright','Ankang Northeast','Baoding Anguo Southwest','Baoding Anguo Upper','Ankang Southwest','Luoyang Henan Upper','Baoding Anguo Northwest','Changsha Hunan Lower','Ankang Southwest Upper','Ankang Northwest']}
df=pd.DataFrame(data)
def sort_fun(x):
return x.split()[-1]
df['sort_value']=df['B'].apply(sort_fun)
sort_dicts={'Northeast':0,'Southeast':1,'Northwest':2,'Southwest':3,'Upper':4}
df.sort_values(by=['A','sort_value'],key=lambda x

< /code>
Я ссылался на это панды: как настраивать на несколько столбцов? A B
Ankang Shaanxi Ankang Northeast
Ankang Shaanxi Ankang Southeast
Ankang Shaanxi Ankang Northwest
Ankang Shaanxi Ankang Southwest
Ankang Shaanxi Ankang Southwest Upper
Baoding Anguo Baoding Anguo Northeast
Baoding Anguo Baoding Anguo Southeast
Baoding Anguo Baoding Anguo Northwest
Baoding Anguo Baoding Anguo Southwest
Baoding Anguo Baoding Anguo Upper
Changsha Hunan Changsha Hunan Bright
Changsha Hunan Changsha Hunan Lower
Luoyang Henan Luoyang Henan Upper
Подробнее здесь: https://stackoverflow.com/questions/794 ... ng-problem