请考虑以下代码。
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中包含该值的行数。我的代码有什么问题?
答案 0 :(得分:0)
好。解决了。
d.groupby(d.A).filter(lambda x:{'c'}.issubset(x["B"])).groupby(d.A).size().to_frame('size')