熊猫数据框-按年份的部分数字计数

时间:2020-05-02 07:26:57

标签: 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', '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)

1 个答案:

答案 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']