你可以
groupby上的cols“A”和“B”和呼叫
size,然后
reset_index和
rename生成列:
In [26]:df1.groupby(['A','B']).size().reset_index().rename(columns={0:'count'})Out[26]: A B count0 no no 11 no yes 22 yes no 43 yes yes 3更新
简要说明一下,通过将2列分组,将A和B值相同的行分组,我们称之为
size返回唯一组数:
In[202]:df1.groupby(['A','B']).size()Out[202]: A B no no 1 yes 2yes no 4 yes 3dtype: int64
现在,要还原分组的列,我们调用
reset_index:
In[203]:df1.groupby(['A','B']).size().reset_index()Out[203]: A B 00 no no 11 no yes 22 yes no 43 yes yes 3
这将还原索引,但是大小聚合将变成生成的column
0,因此我们必须重命名此名称:
In[204]:df1.groupby(['A','B']).size().reset_index().rename(columns={0:'count'})Out[204]: A B count0 no no 11 no yes 22 yes no 43 yes yes 3groupby确实接受了
as_index我们可以设置为的arg
,
False因此它不会使分组的列成为索引,但是这会生成a,
series并且您仍然必须还原索引,依此类推....:
In[205]:df1.groupby(['A','B'], as_index=False).size()Out[205]: A B no no 1 yes 2yes no 4 yes 3dtype: int64



