The improved support for Categorical
s in pandas version 0.15 allows you to do this easily:
df['LSE_cat'] = pd.Categorical(
df['LSE'],
categories=['Oands','Wetnds','Develd','Cn','Soys','Otherg','Wht'],
ordered=True
)
df.sort('LSE_cat')
Out[5]:
Region LSE North South LSE_cat
3 3 Oands -47.986764 -32.324991 Oands
2 2 Wetnds -38.480206 -46.089908 Wetnds
1 1 Develd -36.157025 -27.669988 Develd
0 0 Cn 33.330367 9.178917 Cn
5 5 Soys 34.936147 4.072872 Soys
4 4 Otherg 323.209834 28.486310 Otherg
6 6 Wht 0.983977 -14.972555 Wht
If this is only a temporary ordering then keeping the LSE column as
a Categorical
may not be what you want, but if this ordering is
something that you want to be able to make use of a few times
in different contexts, Categoricals
are a great solution.
In later versions of pandas
, sort
, has been replaced with sort_values
, so you would need instead:
df.sort_values('LSE_cat')
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…