2016-08-09 4 views
3

多数のグループに直面すると、グラフが多すぎると凡ての行があり、伝説が読めないために役に立たないことがあります。このような場合、情報が最も多くて最小のグループを見つけることは非常に便利です。ただし、x.size()はグループのメンバーシップ(groupbyを使用した後)を通知しますが、この情報を使用してデータフレームを再ソートする方法はないため、リミットループを使用して最初のxグループのみをグラフにすることができます。パンダ - グループメンバーシップ番号で並べ替え

答えて

3

あなたがカウントを取得し、その列に並べ替えるためにtransformを使用することができます。

df = pd.DataFrame({'A': list('aabababc'), 'B': np.arange(8)}) 
df 
Out: 
    A B 
0 a 0 
1 a 1 
2 b 2 
3 a 3 
4 b 4 
5 a 5 
6 b 6 
7 c 7 

df['counts'] = df.groupby('A').transform('count') 
df 
Out: 
    A B counts 
0 a 0  4 
1 a 1  4 
2 b 2  3 
3 a 3  4 
4 b 4  3 
5 a 5  4 
6 b 6  3 
7 c 7  1 

は今、あなたはcountsで並べ替えることができます。

df.sort_values('counts') 
Out: 
    A B counts 
7 c 7  1 
2 b 2  3 
4 b 4  3 
6 b 6  3 
0 a 0  4 
1 a 1  4 
3 a 3  4 
5 a 5  4 

1行で:

df.assign(counts = df.groupby('A').transform('count')).sort_values('counts') 
関連する問題