将DataFrame分组,按组大小和一行中的列值进行过滤?

时间:2019-11-13 23:36:03

标签: python pandas

我有一个DataFrame df,我想在其中对'columnA'进行分组,用len >= 3过滤组成员,并选择值为 pizza 在'columnB'中。

以下一行

df.groupby('columnA').filter(lambda x: len(x) >= 3)['columnB'] == 'pizza' 

返回'columnB'中带有布尔值的所有行的索引。

这当然起作用:

df2 = df.groupby('columnA').filter(lambda x: len(x) >= 3)
df2 = df2[(df2['columnB'] == 'pizza')]

但是我可以一行吗?

1 个答案:

答案 0 :(得分:0)

@Lambda在评论中提供了解决方案:

df.groupby("columnA").filter(lambda x: len(x)>=3).query('columnB=="pizza"')