如何在pandas中使用具有特定顺序的sort_index

时间:2018-05-09 06:49:55

标签: python pandas

我想使用sort_index对value_counts()

进行排序

我拥有的df就像这样

   a
1 low
2 high
3 vhigh
...

我想计算列a并按索引为low,med,high,vhigh

对它们进行排序
df['a'].value_counts()
med   20
high  30
low   10
vhigh 15

如果我添加sort_index,它就像这样

high  30
low   10
med   20
vhigh 15

这就是我想要的东西

low   10
med   20
high  30
vhigh 15

1 个答案:

答案 0 :(得分:1)

鉴于这个问题,这需要一个自定义排序问题 -

   value  counts
0    med      20
1   high      30
2    low      10
3  vhigh      15

这是您执行df

时获得的value_counts()

value字段定义为pd.Categorical并定义顺序 -

df['value'] = pd.Categorical(df['value'], ["low", "med", "high", "vhigh"])

然后进行排序 -

df.sort_values('value')

<强>输出

   value  counts
2    low      10
0    med      20
1   high      30
3  vhigh      15