python - 熊猫按每组的小计排序
问题描述
pandas 还是新手,但有没有办法按每组的小计对 df 进行排序。
Area Unit Count
A A1 5
A A2 2
B B1 10
B B2 1
B B3 3
C C1 10
所以我想按每个Area
结果的小计对它们进行A subtotal = 7, B subtotal=14, C subtotal = 10
排序排序应该像
Area Unit Count
B B1 10
B B2 1
B B3 3
C C1 10
A A1 5
A A2 2
*请注意,尽管B3 > B1
它的值不应受到排序的影响。
解决方案
创建一个辅助列'sorter',它是count变量的总和,并用它对你的数据框进行排序
df['sorter'] = df.groupby("Area").Count.transform('sum')
df.sort_values('sorter',ascending=False).reset_index(drop=True).drop('sorter',axis=1)
Area Unit Count
0 B B1 10
1 B B2 1
2 B B3 3
3 C C1 10
4 A A1 5
5 A A2 2
推荐阅读
- php - 安全威胁 - composer/installed.json
- java - 在 Java 中解析 HATEOAS JSON
- ruby-on-rails - Rails 中的实例变量是否在每次刷新页面时都会重置?
- java - java.lang.String 在android app中接收数据时引入新字符
- reactjs - Immutable 和 Reselect 的正确模式是什么?
- python - ResNet50 模型在 keras 中没有通过迁移学习进行学习
- sql - 查询以以特定格式将列中的数据显示为行的方式来构造表
- javascript - 使用 react native 控制顶栏
- azure - Azure 中的专用终结点
- javascript - JS - iOS 上的 Safari - 如何获取视口比例属性