我有一个26列的熊猫数据框。我需要基于特定顺序的列的唯一值创建条形图。我设法提取数组中列的唯一值。现在,我想按特定顺序对其进行排序。有什么办法吗? 注意: 基于此列,我希望不要打扰数据框的索引。
我的代码
e= df['emp_length'].dropna().unique()
e = np.sort(e)
sns.countplot(x='emp_length',order=e,data=df)
数组e的排序如下
array(['1 year', '10+ years', '2 years', '3 years', '4 years', '5 years',
'6 years', '7 years', '8 years', '9 years', '< 1 year'],
dtype=object)
但是,我希望按以下顺序排列数组
array(['< 1 year','1 year', '2 years', '3 years', '4 years', '5 years',
'6 years', '7 years', '8 years', '9 years', '10+ years'],
dtype=object)
答案 0 :(得分:0)
关闭需要使用的natsorted
,但随后需要更改顺序-将最后一个值添加到第一个:
a = np.array(['1 year', '10+ years', '2 years', '3 years', '4 years', '5 years',
'6 years', '7 years', '8 years', '9 years', '< 1 year'])
from natsort import natsorted
b = natsorted(a)
print (b[-1:] + b[:-1])
['< 1 year', '1 year', '2 years', '3 years',
'4 years', '5 years', '6 years', '7 years',
'8 years', '9 years', '10+ years']