如何基于DataFrame的genre字段筛选Drama并计算rating字段平均值?
筛选含Drama的行并计算rating平均值(Pandas实现)
基础场景(genre为字符串格式)
如果你的genre字段是字符串(比如"Drama, Comedy"这类多流派拼接的格式),可以用字符串匹配来筛选:
分步写法
# 筛选genre包含Drama的行(忽略大小写,排除空值) drama_subset = df[df['genre'].str.contains('Drama', case=False, na=False)] # 计算rating的平均值 avg_rating = drama_subset['rating'].mean()
链式简化写法
avg_rating = df[df['genre'].str.contains('Drama', case=False, na=False)]['rating'].mean()
参数说明:
case=False:匹配时不区分大小写,兼容"drama"、"DRAMA"这类写法na=False:自动跳过genre字段为空值的行,避免抛出异常
特殊场景(genre为列表格式)
如果genre字段存储的是列表(比如每个单元格是['Drama', 'Thriller']),需要用apply来判断元素是否存在:
drama_subset = df[df['genre'].apply(lambda x: 'Drama' in x)] avg_rating = drama_subset['rating'].mean()
内容的提问来源于stack exchange,提问作者Rishabh Talwar
相关产品推荐
相关产品推荐

