2016-08-09 2 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 

한 줄에 :

df.assign(counts = df.groupby('A').transform('count')).sort_values('counts')