pandas:按组成员的频率对数据帧进行排序

时间:2013-06-26 13:45:20

标签: pandas

我有兴趣按照每个组的条目数对分组的数据框进行排序。据我所知,我可以按组标签排序,也可以根本不排序。假设我有10个属于三个组的条目。 A组有6名成员,B组有3名成员,C组有1名成员。现在,当我做一个grouped.describe(),我想要输出的顺序,以便首先显示具有最多条目的组。

1 个答案:

答案 0 :(得分:2)

我会从describe()取消堆叠统计信息,然后您只需使用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

我为了插图而改变了排序,因为默认情况下它已经排序了,但你当然可以排序。

任何可以按计数排序而不会丢弃或堆叠“价值”级别的人的奖励。 :)