Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 分组数据帧,按组大小和一行中列的值过滤?_Python_Pandas - Fatal编程技术网

Python 分组数据帧,按组大小和一行中列的值过滤?

Python 分组数据帧,按组大小和一行中列的值过滤?,python,pandas,Python,Pandas,我有一些数据框,df,我想按'columnA'分组,筛选len>=3的组成员,并选择'columnB'中值为pizza的成员 下一行 df.groupby('columnA').filter(lambda x: len(x) >= 3)['columnB'] == 'pizza' 返回'columnB'中所有带有布尔值的行的索引 这当然有效: df2 = df.groupby('columnA').filter(lambda x: len(x) >= 3) df2 = df2[(

我有一些数据框,
df
,我想按
'columnA'
分组,筛选
len>=3
的组成员,并选择
'columnB'
中值为pizza的成员

下一行

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')]

但是我可以用一行来完成吗?@Lambda在评论中提供了解决方案:

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

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

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

尝试“…过滤器(lambda x:len(x)>=3和x[“columnb”]==“pizza”)…?我想我得到了
类型错误:过滤器函数返回了一个系列,但需要一个标量bool
我想
df.groupby(“columnA”)。过滤器(lambda x:len(x)>=3)。查询(“columnb='pizza')
可能适合你。是的,可以。试试“…过滤器(lambda x:len(x)(x)>=3和x[“columnb”]==“pizza”)…?我想我得到了
TypeError:filter函数返回了一个序列,但需要一个标量bool
我想
df.groupby(“columnA”).filter(lambda x:len(x)>=3.query(“columnB='pizza')
可能对你有用。是的,这很有效。