python - 通过对另一列的某些操作对基于组的 Pandas 数据框进行排序
问题描述
我有一个 Columns 行
分数
乡村击球手跑 印度萨钦 15000
印度维拉特 12000
澳大利亚史密斯 10000 澳大利亚华纳 8000 澳大利亚瑞奇 11000 纽泽拉德威廉姆森 8000 英格兰巴特勒 5000 英格兰斯托克斯 9000 ....
……
我想找到总体运行次数排名前 3 的国家/地区。我的输出应该是
澳大利亚 29000 印度 27000 英国 14000 新西兰 8000
我无法找到一个确切的表达方式。
我试过这个 Score.groupby('Country')['Runs'].sum()
这给了我一个系列的整个输出,但不是升序,因为它将国家和运行放在一起作为一个列。
根据所有击球手的总得分对国家进行排序的最佳方法是什么?我看到了对一列进行分组和对另一列进行排序的方法,但在这里我希望它对运行列上的某些操作进行排序(此处求和)
解决方案
测试数据:
df = pd.DataFrame(
{
"Country": [
"India",
"India",
"Australia",
"Australia",
"Australia",
"New Zealand",
],
"Batsman": ["Sachin", "Virat", "Smith", "warner", "Ricky", "Wiliamson"],
"Run": [15000, 12000, 10000, 8000, 1100, 8000],
}
)
Pandas groupby 排序:
df.groupby("Country").sum().sort_values("Run", ascending=False)
输出:
Run
Country
India 27000
Australia 19100
New Zealand 8000
推荐阅读
- python - NameError:名称'input_shape'未定义,同时在keras中创建顺序模型
- android - 工具栏部分显示在横向视图中
- installation - 在编译和实际运行时调用了哪些部分
- amazon-web-services - 我可以看到我在 AWS EC2 实例上上传的文件
- r - 如何反转 RasterVis (Levelplot) 的默认颜色?
- django - 在视图功能上添加 transaction.atomic 时 Django 无法识别视图
- swift - 枚举文件系统性能
- javascript - Discord.js v12 表情符号列表命令
- reactjs - 如何在 Mac 上“修复 ENOSPC:设备上没有剩余空间,写入”
- reactjs - NextJs:设置状态码 404 不重定向