Python 熊猫数据帧-按年份的部分数字计数排序

Python 熊猫数据帧-按年份的部分数字计数排序,python,pandas,dataframe,bar-chart,Python,Pandas,Dataframe,Bar Chart,我有一个有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',

我有一个有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)

数组(['1年'、'10年以上'、'2年'、'3年'、'4年'、'5年',
“6年”、“7年”、“8年”、“9年”、“小于1年”],
数据类型=对象)
但是,我希望数组的顺序如下所示

    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)

数组([“<1年”、“1年”、“2年”、“3年”、“4年”、“5年”,
“6年”、“7年”、“8年”、“9年”、“10年以上”],
数据类型=对象)

关闭需要使用的是
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']
a=np.array(['1年'、'10年以上'、'2年'、'3年'、'4年'、'5年',
“6年”、“7年”、“8年”、“9年”、“小于1年])
从natsort导入natsorted
b=a(a)
打印(b[-1:]+b[:-1])
[“<1年”、“1年”、“2年”、“3年”,
‘4年’、‘5年’、‘6年’、‘7年’,
“8年”、“9年”、“10年以上”]

关闭需要使用的是
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']
a=np.array(['1年'、'10年以上'、'2年'、'3年'、'4年'、'5年',
“6年”、“7年”、“8年”、“9年”、“小于1年])
从natsort导入natsorted
b=a(a)
打印(b[-1:]+b[:-1])
[“<1年”、“1年”、“2年”、“3年”,
‘4年’、‘5年’、‘6年’、‘7年’,
“8年”、“9年”、“10年以上”]