首页 > 解决方案 > pandas value_counts:按值排序,然后按字母顺序?

问题描述

我有以下数据框:

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

我想首先按值计数对输出进行排序,然后按水果名称的字母顺序排序:

apples        5
peaches       5
bananas       3
carrots       3
nectarines    3
apricots      1

我找到了这个答案,但它看起来已经过时了。

标签: pythonpandas

解决方案


似乎只是使用value_counts会产生结果

df.fruit.value_counts()
Out[818]: 
apples        5
peaches       5
bananas       3
carrots       3
nectarines    3
apricots      1
Name: fruit, dtype: int64

更新

df.fruit.value_counts().sort_index(ascending=False).sort_values(ascending=False)    

apples        5
peaches       5
bananas       3
carrots       3
nectarines    3
apricots      1
Name: fruit, dtype: int64

推荐阅读