Pandas 熊猫:按组成员的频率对分组的数据帧进行排序

Pandas 熊猫:按组成员的频率对分组的数据帧进行排序,pandas,Pandas,我感兴趣的是根据每组的条目数对分组数据帧进行排序。就我所见,我可以按组标签排序,也可以根本不排序。假设我有10个条目属于三个组。A组有6名成员,B组有3名成员,C组有1名成员。现在,当我进行分组.descripe()时,我希望对输出进行排序,以便首先显示条目最多的组。我将从descripe()中取消统计信息的堆栈,然后您可以简单地使用sort(),因此: incsv = StringIO("""Group,Value B,1 B,2 B,3 C,8 A,5 A,10 A,15 A,25 A,35

我感兴趣的是根据每组的条目数对分组数据帧进行排序。就我所见,我可以按组标签排序,也可以根本不排序。假设我有10个条目属于三个组。A组有6名成员,B组有3名成员,C组有1名成员。现在,当我进行分组.descripe()时,我希望对输出进行排序,以便首先显示条目最多的组。

我将从
descripe()
中取消统计信息的堆栈,然后您可以简单地使用
sort()
,因此:

incsv = StringIO("""Group,Value
B,1
B,2
B,3
C,8
A,5
A,10
A,15
A,25
A,35
A,40""")

df = pd.read_csv(incsv)

groups = df.groupby('Group').describe().unstack()

       Value                                                  
       count       mean        std  min    25%  50%   75%  max
Group                                                         
A          6  21.666667  14.023789    5  11.25   20  32.5   40
B          3   2.000000   1.000000    1   1.50    2   2.5    3
C          1   8.000000        NaN    8   8.00    8   8.0    8


dfstats.xs('Value', axis=1).sort('count', ascending=True)

       count       mean        std  min    25%  50%   75%  max
Group                                                         
C          1   8.000000        NaN    8   8.00    8   8.0    8
B          3   2.000000   1.000000    1   1.50    2   2.5    3
A          6  21.666667  14.023789    5  11.25   20  32.5   40
我反转排序只是为了举例说明,因为默认情况下它已经排序了,但是您当然可以按照自己的意愿进行排序


任何可以在不降低或堆叠“值”级别的情况下按计数排序的人的奖金:

最后一步试试:
groups.sort([('Value','count')],ascending=False)
,虽然不确定它是否比my.xs更有用,但肯定比my.xs好(尝试过,我没有意识到排序可以使用元组,这很好。谢谢你!除了解决我手头的问题,你还教了我一些关于熊猫的有用的东西。