排序pandas value_counts()主要通过降序计数,其次是升序值

时间:2015-07-15 13:18:50

标签: python-3.x pandas

将value_counts()应用于pandas中的一系列时,默认情况下,计数按降序排序,但值不会在每个计数中排序。

如何将每个相同计数中的值按升序排序?

apples    5
peaches   5
bananas   3
carrots   3
apricots  1

1 个答案:

答案 0 :(得分:3)

value_counts的输出本身就是一个系列(就像输入一样),因此您可以使用所有标准排序选项,就像任何系列一样。例如:

df = pd.DataFrame({ 'fruit':['apples']*5  + ['peaches']*5 + ['bananas']*3 +
                            ['carrots']*3 + ['apricots'] })

df.fruit.value_counts().reset_index().sort([0,'index'],ascending=[False,True])

      index  0
0    apples  5
1   peaches  5
2   bananas  3
3   carrots  3
4  apricots  1

我实际上默认情况下会得到相同的结果,所以这是一个ascending=[False,False]的测试,以证明这实际上是按照建议运行的。

df.fruit.value_counts().reset_index().sort([0,'index'],ascending=[False,False])

      index  0
1   peaches  5
0    apples  5
3   carrots  3
2   bananas  3
4  apricots  1

我实际上对于在升序与降序方面究竟想要的输出有点混淆,但无论如何,这里有4种可能的组合,你可以通过改变ascending关键字参数得到它