有一个数据帧,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列上返回降序.我真的希望从最高到最低的数量按降序排列.这样做的方式?
最佳答案
对我来说它工作得很好,但你可以测试替代解决方案:
原文链接:https://www.f2er.com/python/438823.htmldf2 = 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(ascending=False)