グループ化されたデータフレームを各グループのエントリ数でソートすることに興味があります。私が見る限り、グループ ラベルで並べ替えることができるか、またはまったく並べ替えることができません。3 つのグループに属する 10 個のエントリがあるとします。グループ A には 6 人のメンバーがいて、グループ B には 3 人のメンバーがいて、グループ C には 1 人のメンバーがいます。たとえば、grouped.describe() を実行するとき、最も多くのエントリを持つグループが最初に表示されるように出力を並べ替えたいと思います。
質問する
1740 次
1 に答える
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
デフォルトですでにソートされているため、説明のためにソートを逆にしましたが、もちろん好きなようにソートできます。
「値」レベルをドロップまたはスタックせずにカウントでソートできる人にはボーナスです。:)
于 2013-06-26T15:05:48.950 に答える