2016-09-15 9 views
0

아래의 데이터 프레임 그룹을 기준으로 그룹화하려고합니다. 위의 dataframe에 의한 그룹 후 팬더 데이터 프레임의 한 열에 기초한 그룹화

   Group 
       G1 
       G1 
       G1 
       G2 
       G2 

,

   Group   Count 
       G1     3 
       G1     2 

는 그럼, 그룹에 따라 위의 dataframe의 피벗 테이블을 할 필요가있다.

        Count 
      Group 
      G1      3 
      G2      2 
+0

예, 이미 df.groupby ('그룹'). count()를 사용해 보았습니다. 그것은 나에게 카운트를 제공하지 않는다. 그룹 값만 다시 인쇄합니다. – user3447653

+0

'count()'가 아닌'size()'를 사용하십시오. – danielhadar

답변

0

사용 : df.groupby('Group').size()

예 : 당신이 달성하려는 작업에 따라

In[53]: df = pd.DataFrame({'Group': ['G1', 'G1', 'G1', 'G2', 'G2']}) 
In[54]: df 
Out[54]: 
    Group 
0 G1 
1 G1 
2 G1 
3 G2 
4 G2 

In[55]: df.groupby('Group').size() 
Out[55]: 
Group 
G1 3 
G2 2 
1

:

In [27]: df.groupby('Group').size().rename('Count').reset_index() 
Out[27]: 
    Group Count 
0 G1  3 
1 G2  2 

In [28]: df.groupby('Group').size().rename('Count').to_frame() 
Out[28]: 
     Count 
Group 
G1   3 
G2   2 
0

당신이 당신의 dataframe을 GROUPBY 열은 그룹화의 인덱스가됩니다 데이터 프레임을 만들려면 두 번째 열이 필요합니다. 당신은 그냥이 같은 일을 만들 수 있습니다

df = df.reset_index() 

그냥 조심, 새로운 열이 index라고 이름이 바뀌고해야한다.

df.groupby('Group',as_index=False).count() 

당신은 as_index=False을 사용할 수 없습니다 : 당신이 Group 새로운 dataframe의 인덱스 없도록하려면

df.groupby('Group').count() 

을 또는 : 새 열로

이 잘 작동합니다 한 칼럼의 데이터 프레임과 함께.

관련 문제