Python实现:筛选满足评分计数>50且均值>4的餐厅
解决方案
不需要单独统计评分计数与均值后再合并为新数据集,直接通过分组聚合+条件筛选就能一步完成需求。
核心思路
- 按餐厅维度分组,对
评分字段同时计算两个统计值:- 有效评分的数量(自动忽略NaN)
- 平均评分(同样自动排除NaN)
- 直接在聚合后的统计结果上,筛选出「评分计数>50且平均评分>4」的餐厅即可。
代码示例(以Python Pandas为例)
import pandas as pd # 假设原数据集为df,包含「餐厅ID/名称」「评分」等字段 # 分组聚合计算统计指标 restaurant_metrics = df.groupby('餐厅ID').agg( 有效评分数量=('评分', 'count'), 平均评分=('评分', 'mean') ) # 筛选符合促销条件的餐厅 qualified_restaurants = restaurant_metrics[ (restaurant_metrics['有效评分数量'] > 50) & (restaurant_metrics['平均评分'] > 4) ]
补充说明
如果后续需要将筛选出的餐厅统计数据与原数据集的其他字段(如菜系、订单价格)关联,才需要通过merge合并;但如果只是确定参与促销的餐厅名单,上述步骤已经足够,无需额外合并操作。
内容的提问来源于stack exchange,提问作者Apst
相关产品推荐
相关产品推荐

