2016-09-15 17 views
0

以下のデータフレームでグループに基づいてグループ化しようとしています。上記のデータフレーム内により、グループの後pandasデータフレームの1つの列に基づいたグループ化

   Group 
       G1 
       G1 
       G1 
       G2 
       G2 

、その後

   Group   Count 
       G1     3 
       G1     2 

、私はグループに基づいて、上記データフレームのピボットテーブルを行う必要があります。

        Count 
      Group 
      G1      3 
      G2      2 
+0

はい、すでにdf.groupby( 'Group')。count()で試しています。それは私にカウントを提供していない。グループの値だけが表示されます。 – user3447653

+0

'size()'ではなく '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

あなたのデータフレームをGROUPBY列がグループ化されたの指標となりますデータフレームでは、これを行うには2番目の列が必要です。あなたはちょうどこのようなものを作成することができます:

df = df.reset_index() 

ただ、気をつけて、新しい列は、それが名前を変更する必要があり、indexと呼ばれています。新しい列で

これはうまく動作します:

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

それとも、Groupが新しいデータフレームのインデックスされないようにするには:あなたが使用することはできません

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

as_index=False 1列のデータフレームを使用しています。

関連する問題