Python 3.x 熊猫过滤器,分组,然后变换

Python 3.x 熊猫过滤器,分组,然后变换,python-3.x,pandas,pandas-groupby,Python 3.x,Pandas,Pandas Groupby,我有一个熊猫数据框,它看起来如下所示: df = a b a1. 1 a2 0 a1 0 a3 1 a2 1 a1 1 我想先在1上筛选b,然后按a分组,并计算每组出现的次数(称此列为count),然后将此列与原始df一起附加

我有一个熊猫数据框,它看起来如下所示:

  df =
      a          b
      a1.        1
      a2         0
      a1         0
      a3         1
      a2         1
      a1         1
我想先在
1
上筛选b,然后按
a
分组,并计算每组出现的次数(称此列为
count
),然后将此列与原始df一起附加<对于
a
的每个值,保证至少有一次
1

预期产出:

  df =
      a          b.    count
      a1.        1      2
      a2         0.     1
      a1         0.     2
      a3         1      1
      a2         1.     1
      a1         1      2
我试过:

 df['count] = df.groupby('a').b.transform('size')
但是,这也算零。我想先过滤
b==1

我还尝试:

df['count'] = df[df['b' == 1].groupby('a').b.transform('size')
但是,这会在计数列中引入
nans


如何在一行中执行此操作?

检查并获取适用于
b
的条件,然后
求和

df['b'].eq(1).groupby(df['a']).transform('sum')
Out[103]: 
0    2.0
1    1.0
2    2.0
3    1.0
4    1.0
5    2.0
Name: b, dtype: float64