将value_counts()应用于pandas中的一系列时,默认情况下,计数按降序排序,但值不会在每个计数中排序。
如何将每个相同计数中的值按升序排序?
apples 5
peaches 5
bananas 3
carrots 3
apricots 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
关键字参数得到它