我有一个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
在计数列中引入了吗?
我怎样才能做到这一点?
请与获得条件适用于b
再sum
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] 删除。
我来说两句