2016-09-15 174 views
0

我想在下面的數據框中基於Group進行分組。基於大熊貓數據框中的一列進行分組

   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()',而不是'count()' – 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您的數據幀的列成爲分組的指數數據幀,你需要第二列來做到這一點。你可以創建一個這樣的:

df = df.reset_index() 

只是要小心,新列被稱爲index,它應該改名。

隨着新列這個工作得很好:

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

或者,如果你不想Group成爲新的數據框的索引:

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

不能使用as_index=False順便提一下一列數據框。

相關問題