按ID的特定子集分组

时间:2019-10-31 08:52:36

标签: pandas-groupby

请考虑以下代码。

d=pd.DataFrame([[1,'a'],[1,'b'],[2,'c'],[2,'a'],[3,'c'],[4,'a'],[4,'c']],columns=['A','B'])

我想按A列中一组特定的ID分组-映射到c的ID。在这种情况下,它是2、3、4。我为此编写了以下代码。

d.groupby(d[d['B']=='c'].A).size().to_frame('size')

返回

A size
2  1
3  1
4  1

但我希望它返回

A size
2  2
3  1
4  2

因为我要用大小来表示A中包含该值的行数。我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

好。解决了。​​

d.groupby(d.A).filter(lambda x:{'c'}.issubset(x["B"])).groupby(d.A).size().to_frame('size')