如何从国家索引的DataFrame中获取金牌最多的国家名称字符串
解决方法:获取金牌最多国家的字符串名称
你的代码逻辑没问题,但返回的是Index对象而非单纯的字符串——因为df[条件].index返回的是Pandas的索引类型。这里有两种简单的修正方式:
方法1:提取索引的第一个元素
从你的结果来看,金牌最多的国家只有一个,直接取索引的第0位就能拿到目标字符串:
def answer_one(): max_gold = df['Gold.2'].max() x = df[df['Gold.2'] == max_gold] return x.index[0] # 提取索引的第一个元素,返回字符串 answer_one()
方法2:使用idxmax()更简洁
Pandas专门提供了idxmax()方法,直接返回某列最大值对应的索引标签,一步到位:
def answer_one(): return df['Gold.2'].idxmax() # 直接返回最大金牌数对应的国家名称字符串 answer_one()
两种方法最终都会返回'United States'这个纯字符串,而不是Index对象。
内容的提问来源于stack exchange,提问作者dreevo




