还是新手,但有一种方法可以按每个组的小计对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
不受排序的影响。
答案 0 :(得分:1)
创建一个辅助列“ sorter”,它是count变量的总和,并使用它对ur数据帧进行排序
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