加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 22:28:53 所属栏目:Python 来源:网络整理
导读:有一个数据帧,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'])

有一个数据帧,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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读