python - 分组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')]
但是我可以在一行中做到这一点吗?
解决方案
@Lambda 在评论中提供了解决方案:
df.groupby("columnA").filter(lambda x: len(x)>=3).query('columnB=="pizza"')
推荐阅读
- python-3.x - 如何计算 statsmodels 线性混合效应模型的 AIC 值?
- binding - SwiftUI Picker 选择参数给出“表达式类型 'Binding<_>' 在没有更多上下文的情况下是不明确的”错误
- node.js - 我可以同时运行 ExpressJS 和 Nginx 吗?
- python - Seaborn python 无法正确显示轴和条
- python - 无法打开 CSV 文件
- azure-functions - 具有 AzureWebJobStorage 应用程序设置的多个 Azure 函数,相同的 KeyVault?
- swift - 文本在视图中居中而不是在视图后面
- python - 如何在 Python 中检查在线文本文件中的字符串
- python - Python 常规 MIMEText 电子邮件有效,但 MIMEMultiPart 无效
- image - 通过锁定 gSheet 中的图像运行脚本