首页 > 解决方案 > 分组DataFrame,按组大小和一行中的列值过滤?

问题描述

我有一些 DataFrame,df我想在其中'columnA'进行分组,过滤具有 的组的成员len >= 3,并选择具有值比萨的成员'columnB'

以下行

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

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

这当然有效:

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

但是我可以在一行中做到这一点吗?

标签: pythonpandas

解决方案


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

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

推荐阅读