データフレームを2つの列でグループ化し、グループ内で集計結果を並べ替える必要があります。pandas groupbyグループ内で並べ替え
In [167]:
df
Out[167]:
count job source
0 2 sales A
1 4 sales B
2 6 sales C
3 3 sales D
4 7 sales E
5 5 market A
6 3 market B
7 2 market C
8 4 market D
9 1 market E
In [168]:
df.groupby(['job','source']).agg({'count':sum})
Out[168]:
count
job source
market A 5
B 3
C 2
D 4
E 1
sales A 2
B 4
C 6
D 3
E 7
ここで、カウントの列を各グループ内で降順にソートしたいと考えています。そして、上位3行だけを取る。以下のようなものを取得するには:
count
job source
market A 5
D 4
B 3
sales E 7
C 6
B 4
グループごとに上位3つの結果に含まれていないものすべてを合計し、ジョブごとに「その他」というソースグループに追加する方法はありますか? – JoeDanger
'order'は廃止されました。代わりに' sort_values'を使用します –