一种方法是使用自定义字典创建“等级”列,然后使用进行排序,然后在排序后删除该列:
In [17]:custom_dict = {'Critical':0, 'High':1, 'Medium':2, 'Low':3} df['rank'] = df['Criticality'].map(custom_dict)dfOut[17]: Name Criticality rank0 baz High 11 foo Critical 02 baz Low 33 foo Medium 24 bar High 15 bar Low 36 bar Medium 2[7 rows x 3 columns]In [19]:# now sort by 'Name' and 'rank', it will first sort by 'Name' column first and then 'rank'df.sort(columns=['Name', 'rank'],inplace=True)dfOut[19]: Name Criticality rank4 bar High 16 bar Medium 25 bar Low 30 baz High 12 baz Low 31 foo Critical 03 foo Medium 2[7 rows x 3 columns]In [21]:# now drop the 'rank' columndf.drop(labels=['rank'],axis=1)Out[21]: Name Criticality4 bar High6 bar Medium5 bar Low0 baz High2 baz Low1 foo Critical3 foo Medium[7 rows x 2 columns]


