使用Pandas筛选有效评分≥2且平均评分=4的电影
解决方案
先处理数据并导入必要工具库:
import pandas as pd # 读取数据集 df = pd.read_csv('movie_ratings.csv') # 确保评分列转为数值型(自动将'Not Available'转为NaN,若还没处理的话) df['rating'] = pd.to_numeric(df['rating'], errors='coerce')
接下来通过groupby结合agg一次性计算每个电影的有效评分数量和平均评分:
# 按电影名称分组,统计有效评分数和平均分 movie_metrics = df.groupby('movie Name').agg( valid_rating_count=('rating', 'count'), # count自动忽略NaN,统计有效评分数量 average_rating=('rating', 'mean') ).reset_index()
然后设置筛选条件,选出符合要求的电影:
# 筛选:有效评分≥2 且 平均分=4 target_movies = movie_metrics[(movie_metrics['valid_rating_count'] >= 2) & (movie_metrics['average_rating'] == 4)] # 输出结果 print(target_movies['movie Name'])
运行以上代码后,输出结果就是你期望的XXX。
关键说明
agg方法支持对同一列执行多个聚合操作,完美解决你同时统计数量和平均分的需求;count聚合函数会自动忽略NaN值,正好对应"有效评分"的统计要求;- 布尔索引可以同时组合多个筛选条件,精准定位目标电影。
内容的提问来源于stack exchange,提问作者Rachel Doherty
相关产品推荐
相关产品推荐

