python - pandas value_counts( ) 不按降序排列

标签 python pandas

有一个dataframe,df

Index              Date               Name         Category
 0            2017-08-09              ABC-SAP       1
 1            2017-08-09              CDE-WAS       2
 2            2017-08-10              DEF           3
 3            2017-08-11              DEF           3
 4            2017-08-11              CDE-WAS       2
 5            2017-08-11              CDE-WAS       2

我执行了这段代码:

df2=pd.DataFrame(df, columns= ['Name','Category'])
df2= df['Name'].groupby(df['Category']).value_counts()
print(df2)

然后我得到:

 Index             Name
 (1,ABC-SAP)       1              
 (2,CDE-WAS)       3                         
 (3,DEF)           2             

value.counts( ) 不返回 NAME 列的降序。我真的很想按从高到低的降序排列。有什么办法吗?

最佳答案

对我来说它工作得很好,但你可以测试替代解决方案:

df2 = df['Name'].groupby(df['Category']).value_counts()
print(df2)
Category  Name   
Pri       CDE-WAS    3
          DEF        2
          ABC-SAP    1
Name: Name, dtype: int64


df2 = df.groupby('Category')['Name'].value_counts()
print(df2)
Category  Name   
Pri       CDE-WAS    3
          DEF        2
          ABC-SAP    1
Name: Name, dtype: int64

编辑:

要对所有值进行排序,请使用 sort_values :

df1 = df.groupby('Category')['Name'].value_counts().sort_values(as‌​cending=False)

关于python - pandas value_counts( ) 不按降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47899830/

相关文章:

python - 从 csv 获取 Pandas 系列

python - 使用 bcolz 将 Pandas 数据框保存到文件

Python 2.7 值错误 : Need more than 0 vales to unpack (Learn Python the Hard Way Ex 41)

python - 创建成绩字典的功能

python - 如何注释函数枚举

python - Pandas dataframe to_datetime() 转换日期不正确

python - pandas时间序列数据预处理

python - 迭代数据帧的行,并将多个计算值分配给这些行

python - 我如何在 SQL 查询中伪造这些数据

python - 记录分组算法