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

Pandas 基于数据帧中的一列进行分组,pandas,dataframe,Pandas,Dataframe,我正在尝试根据以下数据框中的组进行分组 Group G1 G1 G1 G2 G2 在上述数据帧中分组之后 Group Count G1 3 G1

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

             Group
               G1
               G1
               G1
               G2
               G2
在上述数据帧中分组之后

             Group            Count
               G1                  3
               G1                  2
然后,我需要基于组为上述数据帧创建一个透视表

                                  Count
          Group
           G1                     3
           G2                     2
使用:
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

根据您想要实现的目标:

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

按数据帧分组的列将成为分组数据帧的索引,您需要第二列来执行此操作。您可以这样创建一个:

df = df.reset_index()
请注意,新列名为
index
,应该重命名

在新专栏中,这一切都很好:

df.groupby('Group').count()
或者,如果您不希望
Group
成为新数据帧的索引:

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

顺便说一句,您不能将
用作单列数据帧的_index=False

是的,我已经尝试使用df.groupby('Group').count()。它没有给我伯爵。它再次仅打印组值。请使用
size()
,而不是
count()