python - 在 Pandas 数据框的多索引数据中按索引和值排序
问题描述
假设,我有一个如下的数据框:
year month message
0 2018 2 txt1
1 2017 4 txt2
2 2019 5 txt3
3 2017 5 txt5
4 2017 5 txt4
5 2020 4 txt3
6 2020 6 txt3
7 2020 6 txt3
8 2020 6 txt4
我想弄清楚每年的前三条消息。因此,我将数据分组如下:
df.groupby(['year','month']).count()
结果:
message
year month
2017 4 1
5 2
2018 2 1
2019 5 1
2020 4 1
6 3
两个索引的数据都按升序排列。但是如何找到如下所示的结果,其中数据按年份(升序)和计数(降序)排序前 n 个值。'月' 索引将是免费的。
message
year month
2017 5 2
4 1
2018 2 1
2019 5 1
2020 6 3
4 1
解决方案
这将按年份(升序)和计数(降序)排序。
df = df.groupby(['year', 'month']).count().sort_values(['year', 'message'], ascending=[True, False])
推荐阅读
- angular - 无法格式化角度时间戳
- c++ - OpenGL:mat4x4 与 vec4 相乘得到 tvec
- macos - 在 Mac 上调试 IE11
- c# - Entity Framework Core LINQ 麻烦创建(选择案例存在)查询
- c# - 将笔记本电脑连接到多台显示器时出现显示器编号问题
- python - 具有 3 个不同选项的按钮
- vercel - NODE_PATH 或任何在 zeit/now.sh 上带有 node-server 的模块别名
- node.js - 无法安装sequelize NPM node_modules/.sequelize.DELETE/node_modules/debug
- asp.net-mvc - GlobalFilters 在方法 Application_Start 中无法在 MVC 中工作
- angular - 当应用程序与.exe一起分发时,角度/电子应用程序不显示视频mp4