我有一个如下所示 Dataframe :
| 武装|精神疾病的征兆|计数|
| --|--|--|
| 枪|假| 628 |
| 枪|真| 155 |
| 刀|假| 142 |
| 车辆|假| 104 |
| 刀|真| 84 |
| 金属杆|真| 1 |
| n.金属耙|真| 1 |
我想按如下方式对该 Dataframe 进行排序:
| 武装|精神疾病的征兆|计数|
| --|--|--|
| 枪|假| 628 |
| 枪|真| 155 |
| 刀|假| 142 |
| 刀|真| 84 |
我累
armed_mental = focus_age_group.groupby(['armed', 'signs_of_mental_illness'])['id'].count().sort_values(ascending=False)
字符串
上面有产品的结果。但是我很难得到我想要的。类别(武装)与最高数字(真+假)应该在 Dataframe 的顶部。然后跟随真和假。
2条答案
按热度按时间9udxz4iz1#
如果你想按每个“武装”的总数排序,y首先需要合并将计数与
groupby.transform
合并:字符串
备选方案:
型
输出量:
型
qvtsj1bj2#
您可以使用
sort_values
方法通过指定多个列进行排序来实现所需的排序。在您的情况下,您应该首先基于“armed”列按降序对序列框进行排序,以便每个“armed”类别的最高计数位于顶部。接下来,按“signs_of_mental_illness”列按降序排序('True' before 'False').最后,按'count'列降序排序。下面是基于上述解释的代码:
字符串
因此,您的排序后的框架将显示如下:
型