Pandas复杂查询求助:特定演员关联电影查询无结果排查
问题分析与解决
你的代码问题出在获取《Armageddon》主演时拿到的是Series对象,而非单个字符串,直接转成str会带上索引和元数据,导致后续匹配完全不生效,所以返回空结果。另外代码里的bruce变量未定义,属于笔误。
修正步骤:
正确提取《Armageddon》的actor_1_name
原代码data.actor_1_name[data.movie_title == 'Armageddon']返回的是一个Series(就算只有一条数据),你需要提取其中的单个字符串值,用.iloc[0]或者.item()都可以:# 获取Armageddon的第一主演,得到字符串 armageddon_actor1 = data.loc[data['movie_title'] == 'Armageddon', 'actor_1_name'].iloc[0]或者更简洁的写法:
armageddon_actor1 = data[data['movie_title'] == 'Armageddon']['actor_1_name'].item()完成第二个任务的匹配
用拿到的字符串做条件筛选,注意逻辑与&的两侧条件要分别加括号:# 筛选actor_3_name为Piolo Pascual且actor_1_name是Armageddon主演的电影 target_movies = data[(data['actor_3_name'] == 'Piolo Pascual') & (data['actor_1_name'] == armageddon_actor1)] # 提取并打印目标电影名 print(target_movies['movie_title'])
额外优化(第一个任务)
如果确认票房67344392的电影只有一部,你可以直接提取单个值而非Series:
# 获取票房恰好为67344392的电影的actor_1_name target_actor1 = data[data['gross'] == 67344392]['actor_1_name'].item() print(target_actor1)
内容的提问来源于stack exchange,提问作者kichona
相关产品推荐
相关产品推荐

