Python Pandas分组后筛选特定值:按年龄组取最低评分影片
解决指定年龄组最低评分影片的获取问题
嘿,这问题其实很好解决,我来给你拆解清楚!核心就是先精准定位到目标年龄组的数据,再从中找出评分最低的影片就行。
完整函数示例
假设你的原始数据是一个名为df的DataFrame,已经按Age完成了分组(grouped = df.groupby('Age')),可以用下面这个函数实现需求:
def get_lowest_rated_movie(target_age): # 先获取目标年龄对应的分组数据 try: age_group_data = grouped.get_group(target_age) except KeyError: return f"年龄组 {target_age} 不存在" # 处理不存在的年龄组情况 # 找到该组的最低评分 min_rating = age_group_data['Ratings'].min() # 筛选出评分等于最低分的所有行,提取对应的影片 lowest_rated_movies = age_group_data[age_group_data['Ratings'] == min_rating]['Movie'] # 如果有多个影片评分相同且都是最低,这里返回第一个;要返回全部的话改成tolist() return lowest_rated_movies.iloc[0]
关键步骤解释
- 定位目标年龄组:用
grouped.get_group(target_age)是核心!它能直接从分组对象里取出指定年龄的所有数据行,这刚好解决了你不知道怎么获取指定年龄组评分的问题。 - 找到最低评分:通过
age_group_data['Ratings'].min()拿到该组的最低评分值。 - 匹配对应影片:筛选出评分等于最低分的行,再提取
Movie列的值即可。如果有多个影片同分最低,你可以根据需求返回第一个或者全部列表。
测试验证
按照你给出的示例,当调用get_lowest_rated_movie(1)时,函数会先取出Age=1的分组数据,找到其中最低评分5.5对应的影片4,完美返回预期结果。
内容的提问来源于stack exchange,提问作者VakarinDmitriy
相关产品推荐
相关产品推荐

