如何使用Pandas获取2019年评分最高的游戏名称?
如何获取2019年Critic_Score最高的游戏名称?
我需要找出2019年最受欢迎的游戏(以Critic_Score为评判标准)。我已经写出了筛选2019年数据并获取最高Critic_Score值的代码,但不知道怎么拿到这个评分对应的游戏名称,请求帮助!
现有代码如下:import pandas as pd df = pd.read_csv(r'C:\Users\imogen\Documents\IT\vgRatings.csv') most_popular2019 = df[df['Year'] == 2019].max()['Critic_Score']
解决方案
Hey there! 你当前的代码只提取了最高分的数值,没有关联到对应的游戏行数据,所以拿不到游戏名称。我给你两种简单可行的解决办法:
方法一:精准定位单最高分游戏
这种方法用idxmax()获取最高分所在行的索引,再提取对应游戏名称,适合确定只有一个最高分游戏的场景:
import pandas as pd df = pd.read_csv(r'C:\Users\imogen\Documents\IT\vgRatings.csv') # 先筛选出2019年的游戏数据 df_2019 = df[df['Year'] == 2019] # 获取Critic_Score最高的行索引 top_score_index = df_2019['Critic_Score'].idxmax() # 通过索引提取游戏名称和对应的评分 top_game_name = df_2019.loc[top_score_index, 'Name'] top_game_score = df_2019.loc[top_score_index, 'Critic_Score'] print(f"2019年评分最高的游戏是:{top_game_name},评分:{top_game_score}")
方法二:处理多个同分游戏
如果存在多个游戏共享最高分的情况,这种方法通过排序后筛选,能捕获所有符合条件的游戏:
import pandas as pd df = pd.read_csv(r'C:\Users\imogen\Documents\IT\vgRatings.csv') df_2019 = df[df['Year'] == 2019] # 按Critic_Score降序排序2019年的游戏数据 sorted_2019_games = df_2019.sort_values(by='Critic_Score', ascending=False) # 获取最高分数值 max_score = sorted_2019_games.iloc[0]['Critic_Score'] # 筛选出所有拥有最高分的游戏名称 top_games = sorted_2019_games[sorted_2019_games['Critic_Score'] == max_score]['Name'].tolist() print(f"2019年评分最高的游戏(评分:{max_score}):{', '.join(top_games)}")
小提醒:
- 方法一简洁高效,适合单最高分场景;
- 方法二更严谨,能覆盖多个游戏同分的边缘情况,不会漏掉任何高分游戏!
内容的提问来源于stack exchange,提问作者user16657522
相关产品推荐
相关产品推荐

