有一个数据框,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
Run Code Online (Sandbox Code Playgroud)
我执行了以下代码:
df2=pd.DataFrame(df, columns= ['Name','Category'])
df2= df['Name'].groupby(df['Category']).value_counts()
print(df2)
Run Code Online (Sandbox Code Playgroud)
然后我得到:
Index Name
(1,ABC-SAP) 1
(2,CDE-WAS) 3
(3,DEF) 2
Run Code Online (Sandbox Code Playgroud)
value.counts()不会在NAME列上返回降序。我真的希望按从高到低的降序排列。有什么办法吗?
对我来说它工作得很好,但你可以测试替代解决方案:
\n\ndf2 = df[\'Name\'].groupby(df[\'Category\']).value_counts()\nprint(df2)\nCategory Name \nPri CDE-WAS 3\n DEF 2\n ABC-SAP 1\nName: Name, dtype: int64\n\n\ndf2 = df.groupby(\'Category\')[\'Name\'].value_counts()\nprint(df2)\nCategory Name \nPri CDE-WAS 3\n DEF 2\n ABC-SAP 1\nName: Name, dtype: int64\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:
\n\n要对所有值进行排序,请使用sort_values:
df1 = df.groupby(\'Category\')[\'Name\'].value_counts().sort_values(as\xe2\x80\x8c\xe2\x80\x8bcending=False)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4032 次 |
| 最近记录: |