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