熊猫过滤器,先分组再变换

Sumit sidana

我有一个pandas数据框,如下所示:

  df =
      a          b
      a1.        1
      a2         0
      a1         0
      a3         1
      a2         1
      a1         1

我想先过滤b 1,然后a对每个组的出现次数进行分组和计数(称为此列count),然后将此列附加原始df。b保证1每个的值至少有一次a

预期产量:

  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在计数列中引入了吗?

我怎样才能做到这一点?

贝尼

请与获得条件适用于bsum

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章