Bir yaklaşım, bir 'taban' sütununu oluşturmak için özel bir dicti kullanmak olacaktır gibi
Sonuçta olmalı, biz o zaman ile sıralamak sonra sıraladıktan sonra sütun bırakın kullanın:
In [17]:
custom_dict = {'Critical':0, 'High':1, 'Medium':2, 'Low':3}
df['rank'] = df['Criticality'].map(custom_dict)
df
Out[17]:
Name Criticality rank
0 baz High 1
1 foo Critical 0
2 baz Low 3
3 foo Medium 2
4 bar High 1
5 bar Low 3
6 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)
df
Out[19]:
Name Criticality rank
4 bar High 1
6 bar Medium 2
5 bar Low 3
0 baz High 1
2 baz Low 3
1 foo Critical 0
3 foo Medium 2
[7 rows x 3 columns]
In [21]:
# now drop the 'rank' column
df.drop(labels=['rank'],axis=1)
Out[21]:
Name Criticality
4 bar High
6 bar Medium
5 bar Low
0 baz High
2 baz Low
1 foo Critical
3 foo Medium
[7 rows x 2 columns]
Gönderdiğiniz sonuçlara dayanarak, öncelikle önce Ad, sonra Kritiklik'e göre sıralamak istediğinizi düşünüyorum. Sağ? – exp1orer
@ exp1orer evet, ancak harici bir sıralamayı kullanmadan, istenen çıktı olan – EdChum
EdChum değil, kritik olarak alfa sıralama ile sonuçlanırsınız. Sadece sordum çünkü onun sorusu "önce Kritiklik ve sonra İsim ile sıralamak" istediğini söylüyor. ama örnek çıktı aksi yönde. – exp1orer