基于pandas数据帧中的一列进行分组

时间:2016-09-15 13:57:48

标签: pandas dataframe

我正在尝试根据以下数据框中的Group进行分组。

             Group
               G1
               G1
               G1
               G2
               G2

在上述数据框中的分组后,

             Group            Count
               G1                  3
               G1                  2

然后,我需要根据Group做一个上述数据框的数据透视表。

                                  Count
          Group
           G1                     3
           G2                     2

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

您在数据框中分组的列将成为分组数据框的索引,您需要第二列才能执行此操作。您可以像这样创建一个:

df = df.reset_index()

请注意,新列名为index,应重命名。

使用新列可以正常工作:

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

或者,如果您不希望Group成为新数据框的索引:

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

顺便说一句,您不能将as_index=False与一列数据框一起使用。